WPFToolkit RichTextBox - обновляет цвет текста при наборе текста - PullRequest
1 голос
/ 16 октября 2011

Я использую WPFToolkit RichTextBox, чтобы позволить пользователю просматривать и редактировать текст. Одна из вещей, которые мне нужно поддержать, - это раскраска отдельных слов по мере их ввода, а также при загрузке их из ранее существовавшего источника.

Например, если пользователь вводит слово «Hello», оно должно быть синего цвета.

Так как я использую MVVM, я бы хотел как можно больше избегать кода.

До сих пор я пытался обработать это в ViewModel с помощью пользовательского TextFormatter, однако это помогло только тогда, когда я обновил свойство источника и когда я непосредственно обновил RichTextBox, он ничего не окрашивал, так как SetText TextFormatter не был даже звонил. Был вызван только SetText.

Я надеюсь, что вы, ребята, могли бы помочь мне.

Спасибо!

1 Ответ

4 голосов
/ 18 октября 2011

В конце концов, я использовал решение, которое нашел здесь - http://blogs.microsoft.co.il/blogs/tamir/archive/2006/12/14/RichTextBox-syntax-highlighting.aspx

Он делает свою работу, но иногда имеет небольшие сбои при быстром наборе текста или удерживании клавиши возврата на клавишу.

Так что пока это достаточно хорошо, так как мой RichTextBox относительно мал.

Хотя, если кто-нибудь знает, как исправить икоту, это было бы действительно здорово!

РЕДАКТИРОВАТЬ: Iнашел способ действительно улучшить икоту.Я использовал DispatcherTimer и запустил его для события TextChanged, поэтому только через секунду / полсекунды он запустит логику раскраски.Пока это работает намного быстрее, и я не заметил никаких проблем при быстрой печати.Так что для моих потребностей один ряд с цветными словами, похоже, это сработало!

...