我想在富文本框中添加省略号(..)。
在普通的TextBlock
中,TextTrimming="WordEllipsis"
属性可以限制长度以允许省略号表示,但是富文本框却没有这个属性。现在只能在富文本框中实现,而文本块则不行。
我想要通过两三行进行裁剪,并添加省略号(..)选项。有什么好的方法吗?
我想向您展示我如何使用RichTextBox,但我的声望很低。
我想在富文本框中添加省略号(..)。
在普通的TextBlock
中,TextTrimming="WordEllipsis"
属性可以限制长度以允许省略号表示,但是富文本框却没有这个属性。现在只能在富文本框中实现,而文本块则不行。
我想要通过两三行进行裁剪,并添加省略号(..)选项。有什么好的方法吗?
我想向您展示我如何使用RichTextBox,但我的声望很低。
你不需要
省略号的概念,正如grek40所说,只适用于显示文本的情况。
例如,假设省略号被显示出来,用户尝试在你的RichTextBox
中部分选择一些文本,包括省略号,那么选择的结果会是什么?你无法确定。
或许
由于省略号通常是滚动条的替代品,隐藏文本而不是允许您通过滚动访问它,因此您可以使用WPF样式来模拟它。
创建一个样式,在Scrollbar visibility trigger触发时显示省略号的图标/图片(放置位置由您决定)。一旦省略号可见,您需要禁用Scrollbar
。
这显然需要比简单设置属性更多的工作,并且如果没有仔细实现,很容易成为用户体验的噩梦,所以请注意。
注意:另一个评论(由Walt Ritscher)链接到一个类似的问题,那里的解决方案与这个类似。
另一种可能
另一种伪造省略号的方法是使用两个不同的RichTextBox
控件。
第一个RichTextBox
将设置ReadOnly
为true
。将文本削减到允许的最大长度,附加省略号并在此第一个RichTextBox
中显示它。
当用户需要编辑文本时,隐藏第一个RichTextBox
并显示包含整个文本的第二个RichTextBox
。RichTextBox
和TextBox
(不是TextBlock
)都不支持省略号。不能使用TextBlock
因为它不支持RichTextBox
的特殊文本格式,而你需要这个。你只能通过某种方法来解决,就像我已经说过的那样。 - r41n