在此示例中,第一列得到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>
Run Code Online (Sandbox Code Playgroud)

如果我将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>
Run Code Online (Sandbox Code Playgroud)
...然后第一列得到33.3,最后一列66.6看起来很奇怪.不知道为什么这应该改变网格的行为.我希望第0列和第2列各得50.

更新:我理解为什么会发生这种情况,但是想知道是否有人认为这是一个错误(特别是因为Silverlight中的行为不同)
小智 1
只是一个更新..我已经尝试了 XAML 片段与 .NET 3.5/4.0 Silverlight 3/4 的组合,但仍然无法为第二个示例获得相同的宽度...
此 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>
Run Code Online (Sandbox Code Playgroud)
你们这边有什么更新吗?