在本例中,第一列得到100,接下来的两列各得到50,这是预期的行为。
<Grid Width="200" Height="200">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="100" />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Background="Red" Grid.Column="0" />
<Border Background="Yellow" Grid.Column="1" />
<Border Background="Blue" Grid.Column="2" />
</Grid>

如果我将MinWidth移到中间一列...
<Grid Width="200" Height="200">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition MinWidth="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Background="Red" Grid.Column="0" />
<Border Background="Yellow" Grid.Column="1" />
<Border Background="Blue" Grid.Column="2" />
</Grid>..。然后第一列得到33.3,最后一列得到66.6,这看起来很奇怪。不确定为什么这会改变网格的行为。我预计第0列和第2列将分别获得50。

更新:我理解为什么会发生这种情况,但我想知道是否有人认为这是一个bug (特别是因为Silverlight中的行为是不同的)
发布于 2011-09-27 11:03:43
只是更新一下..我尝试过使用XAML3.5/4.0Silverlight3/4组合的.NET代码片段,但对于第二个示例仍然无法获得相同的宽度……
这个XAML是解决这个问题的唯一方法:
<Grid Width="200" Height="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".5*" />
<ColumnDefinition MinWidth="100" />
<ColumnDefinition Width=".5*" />
</Grid.ColumnDefinitions>
<Border Background="Red" Grid.Column="0" />
<Border Background="Yellow" Grid.Column="1" />
<Border Background="Blue" Grid.Column="2" />
</Grid>你们这边有什么进展吗?
https://stackoverflow.com/questions/3718202
复制相似问题