ListView样式将省略号(...)添加到所有截断的文本

时间:2012-04-04 08:58:45

标签: wpf xaml listview styles ellipsis

我想在我的WPF应用程序中为我的ListViews创建一个样式,这使它们看起来更像Windows资源管理器ListView。我坚持的是当列太窄而无法修复文本时出现在网格/详细信息视图中的省略号(...)。

知道我可以覆盖每列的单元格模板,并明确设置TextTrimming模式以获得每列的省略号。但是,我想要一种可以应用于任何ListView的样式来获得相同的行为。

我希望能够像这样定义列表视图:

<ListView ItemsSource="{Binding Library}" Style="{StaticResource ExplorerListStyle}">
    <ListView.View>
        <GridView>
           <GridViewColumn Width="90" Header="Title" DisplayMemberBinding="{Binding Title}" />
           <GridViewColumn Width="60" Header="Author" DisplayMemberBinding="{Binding Author}" />
        </GridView>
    </ListView.View>
</ListView>

我还希望能够覆盖某些列的单元格模板,例如设置文本颜色,理想情况下仍然继承模板中文本的TextTrimming模式。

到目前为止,我设法实现此目的的唯一方法是显式覆盖ListView中的TextBlock样式:

<ListView ItemsSource="{Binding Library}">
    <ListView.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="TextTrimming" Value="CharacterEllipsis" />
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
           <GridViewColumn Width="90" Header="Title" DisplayMemberBinding="{Binding Title}" />
           <GridViewColumn Width="60" Header="Author" DisplayMemberBinding="{Binding Author}" />
        </GridView>
    </ListView.View>
</ListView>

然而,这看起来有点沉重,而且据我所知,不可能将其设置成一种风格。

所以,我正在寻找另一种方法来设置GridViewColumn标题和单元格的TextTrimming模式,可以设置样式,而不会t 需要明确的CellTemplate s。

谢谢,

标记

0 个答案:

没有答案