如何在 RichTextBox 中放置省略号 (...)

How to put ellipsis (...) in RichTextBox

我想在富文本框中放一个省略号(..)。

在正常的 TextBlock 中,TextTrimming="WordEllipsis" 有一个 属性 限制长度以允许省略号表示,但富文本框不允许。它现在应该只作为富文本框来实现。不允许文本块。

我想 trim 两三行并添加省略号 (..) 选项。有什么好的方法吗?

我想向您展示我是如何使用 RichTextBox 的,但声誉很低。

你没有

正如 grek40 所述,省略号概念仅在 显示 文本时有效。 例如,假设显示了省略号,并且用户尝试部分 select 您 RichTextBox 中的某些文本,包括省略号,selected 结果会是什么?你看不出来。

可能

由于省略号通常是 Scrollbar 的替代品,因此隐藏文本而不是允许您通过滚动访问它,您可以使用 WPF 样式伪造它。 创建一个样式,在触发 Scrollbar visibility trigger 时显示省略号的 icon/picture(位置由您决定)。一旦省略号可见,您将需要禁用 Scrollbar。 这显然比简单地设置一个 属性 需要更多的努力,如果不小心实施,它很容易成为用户体验的噩梦,所以要小心。

注意:另一个评论(Walt Ritscher)链接到一个类似的问题,那里的解决方案与这个类似。

替代可能

另一个伪造的省略号可以通过使用两个不同的 RichTextBox 控件来实现。 第一个 RichTextBox 会将 ReadOnly 设置为 true。 Trim 您的文本达到允许的最大长度,并附加一个省略号并将其显示在第一个 RichTextBox 内。 当用户需要编辑文本时,隐藏第一个 RichTextBox 并显示包含整个文本的第二个 RichTextBox