你好Guyz我有一个固定宽度的WPF TextBlock说100,如果字符串不适合宽度,则最后一个字符被切断,因为所有字符的大小都不一样。我不想剪切字符,而是想从那里跳过文本,只显示没有字符截止的文本。
答案 0 :(得分:14)
您可以通过几种方法来控制文本的换行和剪切:
TextWrapping
可用于使文本流向下一行TextTrimming
可用于决定如何剪切不适合的文字 TextTrimming=None
(默认值)意味着将隐藏不适合的文本,但它可能会缩小字符的中间位置,这听起来像您描述的问题。
TextTrimming=WordEllipsis
或TextTrimming=CharacterEllipsis
将避免显示半个字符,但会在文本末尾附加“...”。这对用户来说可能看起来更好。
如果你想在不添加省略号的情况下切断额外的字符,你必须使用所描述的技术Ed S.
答案 1 :(得分:1)
我想我在这里不太了解你的用例。我的第一个建议是简单地动态调整TextBlock的大小。如果那是不可能的话那么你必须先获得字符串的宽度并在你在TextBlock中设置之前自己操作它(或者使用固定宽度的字体,假设你可以并且你知道字符串的最大长度)。
如果您需要在显示字符串之前测量字符串的宽度,可以使用FormattedText class来执行此操作。