宽列从XAML网格推送内容

时间:2014-12-21 11:48:18

标签: xaml layout grid windows-runtime

我希望显示一个包含三列的网格,其中每列填充可用空间但不会使后续列从网格末尾移出。每列需要至少有一些内容(由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,但这并没有帮助。

1 个答案:

答案 0 :(得分:0)

使用星星。

第一列的宽度=“2 *” 其他两个宽度=“1 *”。

这意味着可用的总宽度在数字总数之间平均分配(在此示例中为4 - 第一列为2/4,其他列均为可用宽度的1/4)。

总宽度由列所在的任何容器(网格)确定。