WPF Flowdocument функция «изменить регистр»

Я реализую «случай изменения» функциональность для моего RichTextBox, как слово имеет Shift + F3. Все, что он делает, это переключается между регистром нижнего и верхнего заголовка, что очень просто, когда я получаю доступ к нужной мне строке.

Мой вопрос заключается в том, как изменить (и в первую очередь найти) строку в потоковом документе без потери каких-либо встроенных элементов (потеря форматирования не является проблемой), которые могут содержаться в строке. Как и в слове, мне нужна эта функциональность для 2 случаев:

1) Текст, выделенный мышью. Я попробовал просто

<code>this.Selection.Text = newText;
</code>

Но это, конечно, потеряло мои встроенные элементы.

2) Последнее слово перед кареткой. Любой нетекстовый элемент является разделителем слов, однако одно слово может быть

<code>"He<weird formatting begin>ll<weird formatting end>o".
</code>

Ответы на вопрос(1)

Ваш ответ на вопрос