要保存或重新加载 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);
}
}