http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/5c7f5cdf-4351-4969-990f-29ce9ec84b87/で質問しましたが、奇妙な動作についての適切な説明がまだありません。
次の XAML を実行すると、列が幅 100 に設定されているにもかかわらず、列 0 の TextBlock の幅が 100 より大きいことが示されます。奇妙なのは、ScrollViewer でラップされていることと関係があるのではないかと思いますが、わかりませんどうして。列に MaxWidth を設定すると正常に動作しますが、Width を設定するとうまくいきません。
- 列 0 の幅が尊重されないのはなぜですか?
- スクロール ビューアーを削除すると、列のサイズ変更の動作が異なるのはなぜですか?
説明に感謝します!これは私にとって本当のパズルです。
<Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Width="300">
<ScrollViewer HorizontalScrollBarVisibility="Auto" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock x:Name="textBlock" Text="{Binding ElementName=textBlock, Path=ActualWidth}" />
<TextBlock Text="column 1" Grid.Column="1" />
<TextBlock Grid.Row="1" Grid.ColumnSpan="3" Text="text here that is wider than the first two columns combined" />
</Grid>
</ScrollViewer>
</Window>