我在windows商店应用程序中编辑了ListBoxItem的样式。当条目的内容很长时,我想修剪它,就像textblock中一样,我们有属性TextTrimming = "CharacterEllipsis“。我试过两种方法。
<ContentPresenter x:Name="ContentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<TextBlock TextTrimming="WordEllipsis" Text="{TemplateBinding Content}" Margin="{TemplateBinding Padding}"/>
</ContentPresenter>和
<ContentPresenter x:Name="ContentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<ContentPresenter.Resources>
<Style TargetType="TextBlock">
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
<Setter Property="MaxWidth" Value="10"/>
<Setter Property="Foreground" Value="Red"/>
</Style>
</ContentPresenter.Resources>
</ContentPresenter>但不为我工作,任何帮助都会感激的。
发布于 2016-05-10 13:34:24
首先,在XAML中设置ListBox属性ScrollViewer.HorizontalScrollBarVisibility="Disabled"。
然后使用您的第一个XAML示例,删除包装ContentPresenter的TextBlock (在本场景中不需要它),并替换为<Grid>
发布于 2016-05-10 15:26:21
通过编辑ContentTemplate完成,
<ContentPresenter x:Name="ContentPresenter" ContentTransitions="{TemplateBinding ContentTransitions}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<ContentPresenter.ContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding ElementName=ContentPresenter, Path=Content}" TextTrimming="CharacterEllipsis"/>
</DataTemplate>
</ContentPresenter.ContentTemplate>
</ContentPresenter>https://stackoverflow.com/questions/37138229
复制相似问题