c # Подсветка синтаксиса в WPF - PullRequest
3 голосов
/ 13 мая 2009

Я нашел учебник по подсветке синтаксиса в RichEdits для WPF:

http://blogs.microsoft.co.il/blogs/tamir/archive/2006/12/14/RichTextBox-syntax-highlighting.aspx

Но если я открываю свой список команд из файла, окно редактирования становится очень-очень медленным ... возможно, слишком много слов, чтобы выделить его.

Я читал, что элементы WPF, такие как RichEdit, намного медленнее, чем элементы WinForms.

Как я могу сделать мой WPF RichEdit быстрее ИЛИ включить Winforms RichEdit в мой WPF?

1 Ответ

2 голосов
/ 13 мая 2009

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

Я полагаю, что ответ может лежать в документации RTF . Вы можете определить таблицу цветов и / или стили, а затем использовать их для переноса подходящих слов. Проверьте страницу 130 «Свойства форматирования шрифта (символа)», cf N и cs N . Хитрость заключается в том, чтобы найти совпадения и вставить управляющие символы как можно быстрее. Я RegEx будет самый быстрый метод сканирования.

Вы также можете попытаться ограничить подсветку разумной областью вокруг видимого пространства или даже рассмотреть возможность направления действия выделения на другой процесс.

Мне определенно было бы интересно найти хорошее решение этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...