我希望显示一个包含三列的网格,其中每列填充可用空间但不会使后续列从网格末尾移出。每列需要至少有一些内容(由MinWidth定义)可见。
这就是我之后的事:
___________________________________________
| | | |
|very-wide-first-col...|second...|third...|
|______________________|_________|________|
这就是我得到的:
___________________________________________
| | |
|very-wide-first-column-text|second-column|-text|third-column-text
|___________________________|_____________|
这是我的代码:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="very-wide-first-column-text" TextTrimming="CharacterEllipsis"/>
<TextBlock Grid.Column="1" Text="second-column-text" TextTrimming="CharacterEllipsis"/>
<TextBlock Grid.Column="2" Text="third-column-text" TextTrimming="CharacterEllipsis"/>
</Grid>
MinWidth和MaxWidth的组合似乎没有实现所需的布局 - 似乎它们不适用于Auto,并且按比例调整大小并不是我想要的。我也尝试过使用DockPanel,但这并没有帮助。
答案 0 :(得分:0)
使用星星。
第一列的宽度=“2 *” 其他两个宽度=“1 *”。
这意味着可用的总宽度在数字总数之间平均分配(在此示例中为4 - 第一列为2/4,其他列均为可用宽度的1/4)。
总宽度由列所在的任何容器(网格)确定。