如何将FlowDocument转换为rtf

9 c# rtf flowdocument

我使用WPF RichTextBox将数据流中的flowdocument保存为byte [].现在我需要检索此数据并在RichTextBox报告中显示为rtf.当我尝试使用TextRange或在XAMLReader中转换byte []时,我得到一个FlowDocument,但我如何将其转换为rtf字符串,因为报告RichTextBox只需要rtf.

谢谢

阿文德

Pet*_*old 26

您不应该直接持久化FlowDocument,因为它应该被视为文档的运行时表示,而不是实际的文档内容.而是使用TextRange类来保存和加载各种格式,包括Rtf.

有关如何创建选择并保存到流的快速示例:

var content = new TextRange(doc.ContentStart, doc.ContentEnd);

if (content.CanSave(DataFormats.Rtf))
{
    using (var stream = new MemoryStream())
    {
        content.Save(stream, DataFormats.Rtf);
    }
}
Run Code Online (Sandbox Code Playgroud)

将内容加载到选择中将类似:

var content = new TextRange(doc.ContentStart, doc.ContentEnd);

if (content.CanLoad(DataFormats.Rtf))
{
    content.Load(stream, DataFormats.Rtf);
}
Run Code Online (Sandbox Code Playgroud)