2017-04-05 56 views
0

我想在省略号(..)的富文本框中输入。如何将省略号(...)放在RichTextBox中

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

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

我想告诉你我如何使用RichTextBox,但声誉很低。

+1

虽然TextBlock被设计为*显示*文本,任何文本框被设计为*编辑*文本。编辑没有完整显示的文本并不能真正发挥作用,所以它看起来像你想显示文本,但出于某种原因,你更愿意在RichTextBox中这样做......谨慎地解释这个决定的一些背景? – grek40

+0

[TextBox TextTrimming]可能重复(http://stackoverflow.com/questions/10227014/textbox-texttrimming) –

+0

@ grek40你是对的,我可以用TextBlock来做。但我正在使用一个RichTextBox,它可以支持可能包含文本的格式化文本。 因此,为了做到这一点,我们使用了保存在数据库中的rtf文本格式,它保留了所有格式,我不知道Textbloxk是否支持文本格式非常容易。 现在已经使用了RichTextBox,并且用TextBlock替换它将非常困难,所以请使用RichTextBox提出任何建议。 –

回答

0

你不

省略号概念就是,如图grek40说,这东西只有当显示文字工作。 作为一个例子,假设显示省略号,并且用户试图部分选择RichTextBox中的一些文本,包括省略号,选定的结果是什么?你不知道。

也许

由于省略号通常是一个Scrollbar替换,隐藏文本,而不是让您通过滚动来访问它的,你也许可以伪造它通过使用WPF样式。 创建一个样式,只要Scrollbar visibility trigger被触发,就会显示省略号的图标/图片(放置由您决定)。一旦省略号可见,您将需要禁用Scrollbar。 这显然需要比简单设置属性更多的努力,如果没有谨慎实施,它很容易成为用户体验的噩梦,所以要警告。

注意:另一个评论(由沃尔特里察尔)链接到一个类似的问题,解决方案有类似于这一个。

另类也许

另一个伪造的省略号可以通过使用两种不同的RichTextBox控制来实现。 第一个RichTextBox将会设置ReadOnlytrue。将您的文本修剪为允许的最大长度,然后附上一个省略号并将其显示在第一个RichTextBox内。 当用户需要编辑文本时,隐藏第一个RichTextBox并显示第二个RichTextBox,其中包含整个文本。

+0

请查看我上面的评论。 –

+0

@KangDongGyun,你没有添加任何关于你的问题的新细节。 RichTextBox和TextBox都不支持省略号。使用'TextBlock'是不可能的,因为它不支持您需要的RichTextBox的特殊文本格式。正如我已经说过的那样,只能通过某种形式的黑客来实现这一点。 – r41n

+0

@KangDongGyun我增加了另一个选择,它应该更容易实现。尽管如此,仍然只是一个黑客。 – r41n