Я не знаю, где хранятся данные форматирования относительно свойств поля расширенного текста, но свойство TextRange.Text - это просто необработанная строка текста.
Мой подход заключается в извлечении сырые данные RTF и сохранить / загрузить это соответственно. Это также имеет то преимущество, что его можно открыть в любом другом текстовом редакторе, таком как Microsoft Word.
Чтобы получить представление строки RTF, вы можете использовать этот код:
var ms = new MemoryStream();
var doc = RichTextBox.Document;
var range = new TextRange(doc.ContentStart, doc.ContentEnd);
range.Save(ms, DataFormats.Rtf);
string rtfString = ASCIIEncoding.Default.GetString(ms.ToArray());
//You can then save this string to the database or whatever you want...
, а для загрузки строки RTF обратно в RichTextBox вы можете использовать этот код.
string rtfText = LoadTextFromDatabase() //However you read the saved string..
var ms = new MemoryStream(ASCIIEncoding.Default.GetBytes(rtfText));
RichTextBox.Selection.Load(ms, DataFormats.Rtf);
Надеюсь, это поможет и является подходящим решением для вас.