前言

要保存或重新加载 RichTextBox.Document 需要用到 TextRange 这个对象,它可以将 RichTextBox.Document 的内容保存到文件(或任何其他流)中。它支持以下四种格式

格式 是否支持格式化 是否支持图片
Text
Rtf
Xaml

XamlPackage

了解上述内容后,我们选择合适的格式保存 RichTextBox.Document。

注意:如果,我们是以 Xaml 格式保存的数据。那么,加载的时候就必须使 Xaml 格式。

解决方案
/// <summary>
/// 保存
/// </summary>
/// <param name="rtb">富文本控件</param>
/// <param name="path">文件路径</param>
public void Save(RichTextBox rtb, string path)
{
    var doc = rtb.Document;
    var range = new TextRange(doc.ContentStart, doc.ContentEnd);
    using (var file = new FileStream(path, FileMode.Create))
    {
        range.Save(file, DataFormats.XamlPackage);
    }
}
/// <summary>
/// 加载
/// </summary>
/// <param name="rtb">富文本控件</param>
/// <param name="path">文件路径</param>
public void Load(RichTextBox rtb, string path)
{
    var doc = rtb.Document;
    var range = new TextRange(doc.ContentStart, doc.ContentEnd);
    using (var file = new FileStream(path, FileMode.Open))
    {
        range.Load(file, DataFormats.XamlPackage);
    }
}