Почему ActualWidth и ActualHeight 0.0 в этом случае?
у меня естьGrid
внутриCanvas
определяется так:
<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>
Моя проблема в том, что в конструкторе Window послеInitializeComponents()
илиGrid.ColumnDefinitions[0].ActualWidth
или "любой прямоугольник".ActualWidth
все установлены в 0.0 (то же самое для высот). Я не понимаю, что делать, чтобы получить эту информацию. Любая помощь?
Замечания:
Я не определяю ширину и высоту внешнего холста, но если я это сделаю, это не решит мою проблему.Во время выполнения я вижу, что этоCanvas/Grid
занимает все пространство окна, поэтому каждый прямоугольник внутри него имеетActualWidth
с иActualHeight
sШирина / высота сетки привязана к холсту, но я попытался удалить эту привязку, и моя проблема все еще сохраняется.