WPF:如何在TextBlock中自动缩短文本

34

在我的WPF 4.0应用程序中,我有一个宽度为600、高度为80的TextBlock。我想在运行时截断文本并在末尾追加...

我该如何处理?

1个回答

63

这是一个TextBox还是TextBlock?

如果是TextBlock,你可以使用:

在C#中:

myTextBlock.TextTrimming = TextTrimming.CharacterEllipsis;

或者

XAML中:

<TextBlock Name="myTextBlock" Margin="20" Background="LightGoldenrodYellow" 
  TextTrimming="WordEllipsis" 
  FontSize="14"
>

但如果它是一个文本框,那么据我所知,您可以将ValueConverter绑定到文本框并将截断的文本(用点表示:...)返回到文本框中,但将完整文本保存到文本框的Tag属性中,以便不会丢失原始文本。

但是,据我所知,在没有特定要求的情况下,对文本框应用文本修剪不是一个好的做法。


1
有没有办法在不设置 TextBlock 的宽度的情况下换行文本? - Moon
文本在控件内的换行是基于该控件的宽度。如果您想实现无论宽度如何都进行换行,那么根据我的经验,ValueConverter 是您可以选择的最简单选项。 - Siva Gopal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接