0

我在列定义之后有一个网格宽度:

<Grid.ColumnDefinitions>
        <ColumnDefinition MinWidth="320" MaxWidth="450" Width=".32*"/>
        <ColumnDefinition MinWidth="200" Width="Auto"/>
        <ColumnDefinition MinWidth="200" Width="Auto"/>
        <ColumnDefinition Width="Auto"/> <- (4) should fill all available space
        <ColumnDefinition MinWidth="250" MaxWidth="300" Width=".20*"/>
</Grid.ColumnDefinitions>

问题是在第 (4) 列上将宽度设置为 Auto 会将其宽度归零,最后一列紧邻第三列。我想让最后一列与应用程序的右边缘对齐,前三列在左侧。

我也无法将 (4) 宽度设置为 star(*) - 显然它相对于第一列和最后一列延伸。

我一直在尝试水平对齐,但结果是 - 内容没有填充列宽。我可以将内容宽度绑定到列宽或类似的东西,但我很好奇是否有一些简单的方法可以实现(4)列填充所有剩余空间。

4

1 回答 1

2

我认为您并没有完全理解代表加权平均值的 (*)。

所以对于你的情况。

<Grid.ColumnDefinitions>
     <ColumnDefinition MinWidth="320" MaxWidth="450" Width="3*"/>
     <ColumnDefinition MinWidth="200" Width="Auto"/>
     <ColumnDefinition MinWidth="200" Width="Auto"/>
     <ColumnDefinition Width="5*"/>
     <ColumnDefinition MinWidth="250" MaxWidth="300" Width="2*"/>
 </Grid.ColumnDefinitions> 

如果您希望第 (4) 列变小,请减少 * 权重并在您喜欢的地方增加。

希望能帮助到你...

于 2012-04-20T10:48:49.870 回答