【发布时间】:2015-02-19 17:57:04
【问题描述】:
我想展示一个包含三列的网格,其中每列填充可用空间,但不会将后续列推离网格末端。每列需要至少有部分内容(由 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,但没有帮助。
【问题讨论】:
-
删除第一个
ColumnDefinition中的Width="Auto"。结果是你想要的吗? -
不,因为如果第二列变得太宽,它会将第一列的内容推离网格的左侧。
-
如果是这种情况,这意味着所有三个的总宽度超过了网格的宽度。您希望如何展示它们?
-
我希望它们被截断,以便网格至少显示每列(或其内容的)MinWidth 指定的宽度。
标签: xaml layout grid windows-runtime