【发布时间】:2011-10-21 09:09:50
【问题描述】:
在此示例中,第一列获得 100,接下来的 2 列各获得 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 个。
更新:我明白为什么会发生这种情况,但想知道是否有人认为这是一个错误(特别是因为 Silverlight 中的行为不同)
【问题讨论】:
-
在推特上拉皮条寻找答案?好吧,我想它奏效了。
-
嗯。我正在使用 C#3.5,我的红色列是您的蓝色列的大小,而我的蓝色列是第二个示例的红色列的大小。
-
@Chris 是的,它随着 4.0.我找不到任何记录更改的地方,所以我打开了一个 Connect。
标签: wpf