如何在FlowDocument段落中持久存储样式信息?

时间:2014-02-27 12:09:18

标签: c# wpf richtextbox dependency-properties flowdocument

我的文本应用程序在WPF RichTextBox中托管FlowDocument。您可以为每个段落指定自己的样式(FrameworkContentElement.Style)。在ComboBox中显示了引用当前段落(在插入位置)的样式的文本描述。在存储并重新加载文档后,我注意到:每个段落的样式为空。所以我需要一种方法来在段落中存储样式信息[作为int或字符串值]。我试图滥用NameProperty,ToolTipProperty和TagProperty,但他们拒绝。

有人有想法吗?我很感激。

我知道,滥用WPF属性不是专业方法,可能有一个基本的其他解决方案。

所有样式属性都作为动态资源实现,可以由用户更改。如果,假设段落样式的背景颜色已更改,则使用此样式的所有段落应立即更改其背景颜色。

1 个答案:

答案 0 :(得分:0)

如果您按照以下方式存储和加载样式,则会嵌入并重新加载样式:

// Storing a FlowDocument
using (FileStream fs = new FileStream(fullPath, FileMode.Create, FileAccess.Write))
{
    XamlWriter.Save(_flowDoc, fs);
}

// Loading a FlowDocument into a RichTextBox
using (FileStream fs = new FileStream(fullPath, FileMode.Open, FileAccess.Read))
{
    _flowDoc = (FlowDocument)XamlReader.Load(fs);
    _rtb.Document = _flowDoc;
}