【发布时间】:2017-02-22 03:38:06
【问题描述】:
我的 XAML 代码中有以下结构:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" MinWidth="200"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*" MinWidth="100"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto" MinWidth="150"/>
</Grid.ColumnDefinitions>
<ListBox ItemsSource="{Binding MessagesCollectionView}" Margin="0">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Label Foreground="Black" FontSize="14">
<TextBlock Text="{Binding Title}" TextTrimming="CharacterEllipsis"/>
</Label>
<Label Foreground="Gray" FontSize="12">
<TextBlock Text="{Binding Content}" TextTrimming="CharacterEllipsis"/>
</Label>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<GridSplitter Width="5" Grid.Column="1" HorizontalAlignment="Stretch"/>
<!--More stuff here......-->
我在此处缩短了 XAML 代码,否则它只会使整个问题变得混乱。我有 5 列,按此顺序,从左到右:ListBox、GridSplitter、RichTextBox、GridSplitter、ListView。我只显示前两列,因为其余列几乎相同。
当我加载我的程序时,TextBoxes 没有显示任何省略号,从来没有。我什至尝试给ListBox 一个固定大小。
有谁知道如何修复 Ellipsis 以显示?我相信这可能与 Grid 内的控件在有 GridSplitter 时如何获知其大小有关。
我的目标是一个 UI,其中中间视图有一个 * width,左右视图最初是固定大小的,但如果用户愿意,可以拉伸。
编辑:
这就是我想要的:
这是我得到的:
【问题讨论】: