私は次のように定義された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>
私の問題は、ウィンドウコンストラクターで、InitializeComponents()
またはGrid.ColumnDefinitions[0].ActualWidth
「任意の長方形」の後にあることです。ActualWidth
はすべて 0.0 に設定されています (高さについても同じです)。この情報を取得するために何をすべきかわかりません。何か助けはありますか?
所見:
- 外側のキャンバスの幅と高さを定義していませんが、そうしても問題は解決しません。
Canvas/Grid
実行時に、これがウィンドウ スペース全体を占有していることがわかるので、その中のすべての長方形にはActualWidth
s とActualHeight
sがあります- グリッドの幅/高さはキャンバスにバインドされていますが、このバインドを削除しようとしましたが、問題は解決しません。