Böyle tanımlanan bir Canvas
içinde bir Grid
var:Neden bu durumda ActualWidth ve ActualHeight 0.0 vardır?
<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>
Benim problem, Pencere yapıcı, sonra InitializeComponents()
ya Grid.ColumnDefinitions[0].ActualWidth
veya "herhangi dikdörtgen". ActualWidth
'un tümü 0,0'a ayarlanır (yüksekliklerin aynısı). Bu bilgiyi almak için ne yapacağımı anlayamıyorum. herhangi bir yardım?
Gözlemler:
- Ben dış tuval genişliği ve yüksekliği tanımlamasını değilim ama eğer yaparsam, benim sorunu çözmek does't. Öyle içindeki her dikdörtgen
ActualWidth
s vardır veActualHeight
s - ızgaranın genişlik/yükseklik tuval bağlı ama bu bağlayıcı ve sorunumu çıkarmadan çalıştı, bu
Canvas/Grid
tüm pencere alanını işgal görebilirsiniz Çalışma zamanında - Bu kontrol, ölçülen ve yerleşene kadar
Teşekkürler! Sadece küçük bir düzeltme: window.Measure void döndürür. DesiredWidth/DesiredHeight özelliklerini değiştirir :) Ama senin fikrin doğru. –
Bu, API'leri iki kez kontrol etmeden kafanızın üst kısmından kod yazdığınızda böyle olur. Düzeltme için teşekkürler. MeasureOverride boyutu döndürür, ancak Measure sadece onları depolar. Cevap düzeltildi. –
"DesiredWidth" önce çalışır, ancak .NET'in daha yeni sürümleri DesiredSize.Width ve DesiredSize kullanın emin değilim.Yükseklik –