嗨Guyz我有一个固定宽度的WPF TextBlock,比如说100,如果字符串不适合宽度,最后一个字符总是被截断,因为所有字符的大小都不相同。我不想剪切字符,相反,我想跳过那里的文本,只显示没有字符截断的文本。
发布于 2011-04-03 14:24:52
有几个选项可以控制文本的换行和剪切:
TextWrapping可用于使文本流到下一个lineTextTrimming可用于决定如何剪切不适合的文本
TextTrimming=None (默认值)将意味着不适合的文本将被隐藏,但它可能会减少字符的中间部分,这听起来就像您所描述的问题。
TextTrimming=WordEllipsis或TextTrimming=CharacterEllipsis将避免显示半个字符,但会附加"...“到正文的末尾。这可能会让用户觉得更好。
如果您想在不添加省略号的情况下删除多余的字符,则必须使用Ed S.描述的技术
发布于 2011-04-03 08:57:38
我想我在这里并不真正理解你的用例。我的第一个建议是简单地动态调整TextBlock的大小。如果这是不可能的,那么你将不得不获得字符串的宽度,并在你在TextBlock中设置它之前自己操作它(或者使用固定宽度的字体,假设你可以并且知道字符串的最大长度)。
如果需要在显示字符串之前测量字符串的宽度,可以使用FormattedText class进行测量。
https://stackoverflow.com/questions/5526823
复制相似问题