0
我有以下代码将RichTextBox保存为RTF并立即重新加载它 - 我以前在this question中发布了它,并且我使用它来显示序列化/解串行时出现的问题RTF:从XamlPackage加载:数据格式为'XamlPackage'的无法识别的结构
public Stream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
private async void SaveAndReloadButton_Click(object sender, RoutedEventArgs e)
{
string data = null;
var range = new TextRange(this.RichText.Document.ContentStart, this.RichText.Document.ContentEnd);
using (var memoryStream = new MemoryStream())
{
range.Save(memoryStream, DataFormats.Rtf);
memoryStream.Position = 0;
using (StreamReader reader = new StreamReader(memoryStream))
{
data = await reader.ReadToEndAsync();
}
}
// load
var stream = GenerateStreamFromString(data);
range = new TextRange(this.RichText.Document.ContentStart, this.RichText.Document.ContentEnd);
range.Load(stream, DataFormats.Rtf);
}
我现在想改变格式DataFormats.Rtf
,格式我从this blog post发现。现在,如果我只是在代码DataFormats.XamlPackage
取代DataFormats.XamlPackage
以上,我会在呼叫的以下异常range.Load(...)
:
类型的异常“System.ArgumentException”发生在 PresentationFramework.dll但没有处理用户代码
附加信息:无法识别的数据格式结构 'XamlPackage'。
任何人都可以阐明为什么会发生这种情况?