2011-04-03 66 views
7

嗨Guyz我有一个固定宽度的WPF TextBlock说100,如果字符串不适合宽度最后一个字符被截断总是因为所有字符的大小不一样。我不想剪切字符,而是想跳过那里的文本,只显示没有字符截取的文本。WPF TextBlock Cutoff

回答

1

我想我并不真正理解你的用例。我的第一个建议是简单地动态调整TextBlock的大小。如果这是不可能的,那么你必须得到字符串的宽度并在TextBlock中设置它之前自己操纵它(或者假设你可以知道字符串的最大长度,则使用固定宽度的字体)。

如果您需要在显示字符串之前测量字符串的宽度,可以使用FormattedText class这样做。

13

你有几个选项来控制包装和文字的切割:

  • TextWrapping可以用来使文本流动到下一行
  • TextTrimming可用于决定如何剪切文本不适合

TextTrimming=None(默认)将意味着不适合的文本将被隐藏,但它可能会减少字符的中间,这听起来像您描述的问题。

TextTrimming=WordEllipsisTextTrimming=CharacterEllipsis将避免显示半个字符,但会在文本的末尾附加“...”。这对用户来说可能会更好。

如果要在不添加省略号的情况下切断多余字符,则必须使用描述的技术Ed S.