Ho un Grid
all'interno di una Canvas
definita in questo modo:Perché in questo caso ActualWidth e ActualHeight 0.0?
<Canvas x:Name="outerCanvas">
<Grid Grid.Row="1" Name="cGrid" ShowGridLines="True" Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource AncestorType={x:Type Canvas}}}" Height="{Binding Path=ActualHeight, RelativeSource={RelativeSource AncestorType={x:Type Canvas}}}">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Rectangle Name="rectangle1" Stroke="Black" Fill="AntiqueWhite" />
<Rectangle Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="1" Grid.RowSpan="1" Name="rectangle2" Stroke="Black" Fill="AliceBlue" />
<Rectangle Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="1" Grid.RowSpan="1" Name="rectangle3" Stroke="Black" Fill="Aqua" />
<Rectangle Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="1" Name="rectangle4" Stroke="Black" Fill="DarkViolet" />
</Grid>
</Canvas>
mio problema è che, sulla costruzione della finestra, dopo InitializeComponents()
sia Grid.ColumnDefinitions[0].ActualWidth
o "qualsiasi rettangolo di". ActualWidth
sono tutti impostati su 0.0 (lo stesso per altezze). Non sto cercando di capire cosa fare per ottenere queste informazioni. qualsiasi aiuto?
Osservazioni:
- Non sto definig la larghezza e l'altezza di tela esterna, ma se lo faccio, does't risolvere il mio problema.
- Al runtime posso vedere che questo
Canvas/Grid
occupa l'intero spazio della finestra, in modo che ogni rettangolo interno haActualWidth
s eActualHeight
s - larghezza/altezza della griglia è legata alla tela ma provato a rimuovere questa associazione e il problema persistente
Grazie! Solo una piccola correzione: window.Misure restituisce nulla. Cambia le proprietà DesiredWidth/DesiredHeight :) Ma la tua idea è giusta. –
Ecco cosa succede quando digiti il codice dalla testa senza ricontrollare le API. Grazie per la correzione. MeasureOverride restituisce la dimensione, ma Misura solo li memorizza. Risposta corretta –
Non sono sicuro che "DesiredWidth" abbia funzionato prima, ma le versioni più recenti di .NET utilizzano DesiredSize.Width e DesiredSize.Altezza –