如何将具有所有颜色的 richtextbox 的文本保存到 json 中,以便在之后放回去
How can I save the text of a richtextbox with all the color into a json to put it back after
我在 WPF 上,我有一个有很多不同颜色、大小、bold/underline 文本等的 richtextbox,我现在想知道如何将所有这些文本保存到 json 文件或对象的参数以便稍后将其放回
RichTextBox.SaveFile(); // dont exist
我无法序列化 Richtextbox.Document 它给我一个循环错误
谢谢
基于these instructions and the documentation of TextRange,我创建了一个获取RTF格式的RichTextBox内容的小方法:
string GetRtf(RichTextBox rtb)
{
TextRange textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
using (var stream = new MemoryStream())
{
textRange.Save(stream, DataFormats.Rtf);
stream.Position = 0;
using (var reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
}
当然,你也可以直接将内容保存到FileStream
而不是MemoryStream
。
您可以使用此方法将内容作为字符串获取并将其保存在您想要的任何位置。稍后您将需要 Load()
将其读回您的控件中。
我在 WPF 上,我有一个有很多不同颜色、大小、bold/underline 文本等的 richtextbox,我现在想知道如何将所有这些文本保存到 json 文件或对象的参数以便稍后将其放回
RichTextBox.SaveFile(); // dont exist
我无法序列化 Richtextbox.Document 它给我一个循环错误 谢谢
基于these instructions and the documentation of TextRange,我创建了一个获取RTF格式的RichTextBox内容的小方法:
string GetRtf(RichTextBox rtb)
{
TextRange textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
using (var stream = new MemoryStream())
{
textRange.Save(stream, DataFormats.Rtf);
stream.Position = 0;
using (var reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
}
当然,你也可以直接将内容保存到FileStream
而不是MemoryStream
。
您可以使用此方法将内容作为字符串获取并将其保存在您想要的任何位置。稍后您将需要 Load()
将其读回您的控件中。