我有一个这样定义的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
s 和ActualHeight
s - 网格的宽度/高度绑定到画布,但我尝试删除此绑定,但我的问题仍然存在。