| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > RichTextBox, форматирование текста |
| Автор: Fedia 3.11.2010, 02:55 | ||||||
В компоненте RichTextBox отображается текст типа:
При помощи регулярных выражений определяю позиции нужных мне полей в этом тексте. Зная эти позиции мне необходимо выделить их в тексте (например другим цветом). Сложность заключается в том, что позиции поля в тексте не совпадают со смещением позиции относительно начала документа в RichTextBox. Например, поле 261 в блоке Ш3 (вторая строка) начинается с 50-го символа в тексте и имеет длину 3 символа. Для выделения этого поля использую код:
но из-за того, что в RichTextBox позиции в тексте смещаются при переходе на новый параграф или когда внутри параграфа есть элемент Run, то выделяется не поле 261, а текст перед ним. Для выделения поля 261 приходится использовать позиции со смещением:
Есть ли возможность преобразовать позицию в тексте в позицию в RichTextBox? Иными словами из позиции 50 получить позиции 54. Сейчас я пробегаю по всем параграфам а внутри параграфов по Inlines для определения позиции. Но работает такой способ достаточно медленно при работе с большим количеством текста. |