WPFToolkit RichTextBox - 在键入时更新文本颜色

时间:2011-10-16 09:39:42

标签: wpf mvvm richtextbox wpftoolkit

我正在使用WPFToolkit RichTextBox以允许用户查看和编辑文本。 我需要支持的一件事是在键入特定单词时对其进行着色,以及从预先存在的来源加载它们时。

例如,如果用户输入单词 - “Hello”,则应将其涂成蓝色。

由于我使用的是MVVM,我希望尽可能避免使用代码。

到目前为止,我一直在尝试使用自定义TextFormatter在ViewModel中处理它,但是只有在我更新源属性时才有帮助,当我直接更新RichTextBox时它没有任何颜色,因为TextFormatter的SetText不是甚至叫。只调用了SetText。

我希望你们能帮助我。

谢谢!

1 个答案:

答案 0 :(得分:4)

最后我使用了我在这里找到的解决方案 - http://blogs.microsoft.co.il/blogs/tamir/archive/2006/12/14/RichTextBox-syntax-highlighting.aspx

它正在完成它的工作,但在快速键入或保持退格时有时会出现轻微的打嗝。

所以现在它已经足够好了,因为我的RichTextBox相对较小。

虽然如果有人知道如何解决打嗝问题,那真的很棒!

编辑:我找到了一种真正改善打嗝的方法。我使用DispatcherTimer并在TextChanged事件上启动它,这样只有在一秒钟/秒后,它才会启动着色逻辑。到目前为止它的工作速度要快得多,而且在快速输入时我没有注意到任何问题。因此,对于我需要单行的彩色单词,它似乎有效!