WPF - 通过其FlowDocument简单序列化RTF格式(RTF)数据

时间:2011-06-24 22:43:01

标签: wpf serialization rtf

我有一个名为Location的课程:

[Serializable()]
public class Location
{
    public int id { get; set; }
    public double latitude { get; set; }
    public double longitude { get; set; }
    public string name { get; set; }
    public bool isAnOption { get; set; }
    public double distanceFromYaelsParents { get; set; }
    public double distanceFromGabrielsParents { get; set; }
    public FlowDocument notes { get; set; }
}

notes(类型FlowDocument)获取我窗口上的WPF RichTextBox的内容。

我想使用一个简单的序列化,以便将从这个类创建的对象保存到二进制文件中(以后再读取它们)。假设该项目名为location

using (Stream stream = File.Open(dataFileName, FileMode.Create))
{
    BinaryFormatter bin = new BinaryFormatter();
    bin.Serialize(stream, location);
}

所以,只要不包括FlowDocument,一切都很酷。我似乎没有管理那个序列化。

可以吗?或者 - 是否有更好的方法来二进制(而不是XAML)保存和读取RichTextBox的内容,其中包含图像和格式化文本?

请详细说明,我对这些事情都很陌生。

由于

1 个答案:

答案 0 :(得分:2)

FlowDocument不可序列化。有关可能的解决方案,请参阅David Ward对this StackOverflow question的回答。

基本思路:将FlowDocument转换为XAML(XML)并将其序列化。

在您的情况下,我会从序列化中排除FlowDocument属性,而是具有一个字符串属性,该属性可以转换为getter / setter中的FlowDocument。