У меня есть Grid
внутри a 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 - Ширина/высота сетки привязана к холсту, но я попытался удалить эту привязку, и моя проблема сохранилась.