Есть ли в WPF бесплатные замены для richtextbox с открытым исходным кодом?
-
05-07-2019 - |
Вопрос
У меня есть требование создать приложение, которое будет открывать файлы журнала размером около 10 МБ и выделять определенные выражения.
Я думал, что использование WPF и richtextbox будет работать, но время ожидания richtextbox недопустимо.
Есть ли что-нибудь, что имеет richtextbox, как подсветка, но имеет лучшую производительность?
Есть ли другой способ сделать это?
Решение
Scintilla http://www.scintilla.org/ используется в качестве поля для редактирования кода. Он обеспечивает подсветку для множества различных синтаксисов кода. Вы можете использовать его и указать выделенные части.
Другие советы
Если вам не нужно разрешать пользователю редактировать журналы, вам, возможно, удастся избежать использования TextBlock и обернуть разделы для выделения в тегах <Style>
, которые выполняют выделение. Р>
Как вы генерируете свой Flowdocument - в зависимости от того, что вы делаете, вы можете ускорить его. Однако я тоже столкнулся с этими проблемами, особенно потому, что у вас есть для генерации FlowDocument в потоке пользовательского интерфейса, и если это занимает слишком много времени, у вас появляется черный экран.
Если я понимаю, что вы говорите, вам нужен синтаксис с подсветкой управления RTB. Мой личный фаворит - это элемент управления AvalonEdit, (Вот статья о codeproject об этом: "> http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor ), которая может подсветить синтаксис, как редактор в Visial Studio. У него даже есть автозаполнение, которое понравится вашим конечным пользователям.
Если вы хотите что-то еще, есть также редактор кода ICSharp. (Вот еще одна статья о проекте кода по этому поводу: http://www.codeproject.com/ Articles / 30936 / Using-ICSharpCode-TextEditor ) Этот в значительной степени имеет те же функции, что и AvalonEdit, и мне он тоже нравится. Я фактически использовал редактор кода ICSharp в приложении, которое я сделал, и был довольно доволен функциями.
Насколько я знаю, оба эти элемента управления очень эффективны и будут лучше, чем просто richtextbox. р>