2014-08-04 3 views
1

Я реализую основные функции форматирования (жирным шрифтом, курсивом, подчеркивание) в RichTextBox в WPF с помощью кнопок, запускающих такую ​​функциональность (см. Мой previous question, если вам нужен какой-то контекст).Подчеркнутый выбор только в RichTextBox

Как и в this answer, я могу применить подчеркивание что-то вроде следующего:

selectionRange.ApplyPropertyValue(Inline.TextDecorationsProperty, TextDecorations.Underline); 

Проблема заключается в том, что это, кажется, применить подчеркивание всей Inline. Например, если у меня есть текст «Chuck Norris», и я выделяю только «Norris», тогда вся «Chuck Norris» подсвечивается, когда я нажимаю кнопку подчеркивания.

Эта проблема не относится к полужирным и курсивым, поскольку я использую TextElement.FontWeightProperty и TextElement.FontStyleProperty, но при использовании Inline.TextDecorationsProperty У меня проблема, которую я только что описал.

Есть ли способ сделать подчеркивание применимым только к выделенному тексту, а не ко всему Inline?

ответ

1

Вам необходимо разделить встроенную линию на отдельные Run и применить подчеркивание к пробегу, представляющему выбор.

1

Вы можете использовать следующее:

richTextBox.Selection.ApplyPropertyValue(Inline.TextDecorationsProperty, TextDecorations.Underline); 
Смежные вопросы