我有一個Grid
這樣定義的Canvas
內:爲什麼在這種情況下ActualWidth和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>
我的問題是,在窗口的構造,後InitializeComponents()
要麼Grid.ColumnDefinitions[0].ActualWidth
或「任何矩形」。 ActualWidth
都設置爲0.0(高度相同)。我不知道該怎麼做才能獲得這些信息。任何幫助?
觀察:
- 我不definig外畫布寬度和高度,但如果我這樣做,但這並沒有解決我的問題。
- 在運行時,我可以看到這個
Canvas/Grid
佔據了整個窗口空間,所以它裏面的每個矩形的ActualWidth
S和ActualHeight
小號 - 網格的寬度/高度綁定到畫布,但我試圖消除這種結合,我的問題持續
謝謝!只是一點點更正:window.Measure返回void。它改變了DesiredWidth/DesiredHeight屬性:)但你的想法是正確的。 – 2009-11-08 18:10:24
這就是當您在沒有仔細檢查API的情況下輸入代碼時發生的情況。感謝您的更正。 MeasureOverride返回大小,但Measure只是存儲它們。答案已更正。 – 2009-11-08 22:27:20
不確定「DesiredWidth」之前是否有效,但較新版本的.NET使用DesiredSize.Width和DesiredSize。身高 – 2015-06-18 23:40:31