WPF TextBlock Cutoff

时间:2011-04-03 00:47:52

标签: wpf textblock

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

2 个答案:

答案 0 :(得分:14)

您可以通过几种方法来控制文本的换行和剪切:

  • TextWrapping可用于使文本流向下一行
  • TextTrimming可用于决定如何剪切不适合的文字

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

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

如果你想在不添加省略号的情况下切断额外的字符,你必须使用所描述的技术Ed S.

答案 1 :(得分:1)

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

如果您需要在显示字符串之前测量字符串的宽度,可以使用FormattedText class来执行此操作。