WPF Flowdocument "Groß- und Kleinschreibung ändern" -Funktion

Ich implementiere eine "Groß- und Kleinschreibung ändern" -Funktion für meine RichTextBox wie Word mit Shift + F3. Alles, was es tut, ist das Umschalten zwischen Groß- und Kleinschreibung, was sehr einfach ist, sobald ich Zugang zu der Zeichenkette habe, die ich brauche.

Meine Frage ist, wie man eine Zeichenkette in flowdocument ändert (und an erster Stelle findet), ohne eingebettete Elemente zu verlieren (der Verlust der Formatierung ist kein Problem), die in der Zeichenkette enthalten sein können. Wie Word, ich benötige diese Funktionalität für 2 Fälle:

1) Mit der Maus ausgewählter Text. Ich habe es einfach versucht

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

Aber das hat natürlich meine eingebetteten Elemente verloren.

2) Das letzte Wort vor der Einfügemarke. Jedes Nicht-Text-Element ist ein Wortbegrenzer, wie auch immer ein Wort sein kann

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage