我正在修改RichTextBox和flowdocuments。
在RichTextBox中设置文本格式后,我将以 xaml 扩展名保存该文件。
RichTextBox:
private void Save_Executed(object sender, ExecutedRoutedEventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "XAML Format (*.xaml)|*.xaml|All files (*.*)|*.*";
if(dlg.ShowDialog() == true)
{
FileStream fileStream = new FileStream(dlg.FileName, FileMode.Create);
TextRange range = new TextRange(rtbEditor.Document.ContentStart, rtbEditor.Document.ContentEnd);
range.Save(fileStream, DataFormats.Xaml);
}
}
所以我得到这样的 xaml 文件:
<Section>
<Paragraph>
<Run>Hello World</Run>
</Paragraph>
<Paragraph>
<Run
FontFamily="Showcard Gothic">fdsafdsaf</Run>
</Paragraph>
</Section>
我可以以某种方式将此文件解析为 flowdocument 吗?我看到了this,但是我不知道得到 xamlstring 很热。 StreamReader 无效。我只需要将此 xaml 文件包装到
<FlowDocument></FlowDocument>
解析为 flowdocument 之后。我要这样做:
XAML:
<FlowDocumentScrollViewer x:Name="viewer" />
代码背后:
viewer.document = *MyXamlFileAfterParsing*
答案 0 :(得分:1)
我做到了,而且有效:
FileStream xamlFile = File.Open("HUH.xaml", FileMode.Open);
FlowDocument cds = new FlowDocument((Block)XamlReader.Load(xamlFile));
viewer.Document = cds;
xamlFile.Close();