我在http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/5c7f5cdf-4351-4969-990f-29ce9ec84b87/上问了一个问题,但对于奇怪的行为仍然缺乏很好的解释。
运行以下 XAML 显示第 0 列中的 TextBlock 的宽度大于 100,即使该列设置为宽度 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>