我的文本应用程序在WPF RichTextBox中托管FlowDocument。您可以为每个段落指定自己的样式(FrameworkContentElement.Style)。在ComboBox中显示了引用当前段落(在插入位置)的样式的文本描述。在存储并重新加载文档后,我注意到:每个段落的样式为空。所以我需要一种方法来在段落中存储样式信息[作为int或字符串值]。我试图滥用NameProperty,ToolTipProperty和TagProperty,但他们拒绝。
有人有想法吗?我很感激。
我知道,滥用WPF属性不是专业方法,可能有一个基本的其他解决方案。
所有样式属性都作为动态资源实现,可以由用户更改。如果,假设段落样式的背景颜色已更改,则使用此样式的所有段落应立即更改其背景颜色。
答案 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;
}