WPF 如何保存或加载 RichTextBox.Document

前言

要保存或重新加载 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);
    }
}
posted @ 2021-09-07 17:20  2324736194  阅读(381)  评论(0编辑  收藏  举报