如何保存和打开XAML文件?

时间:2019-03-03 14:12:59

标签: c# wpf xaml flowdocument

我正在修改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*

1 个答案:

答案 0 :(得分:1)

我做到了,而且有效:

FileStream xamlFile = File.Open("HUH.xaml", FileMode.Open);            
FlowDocument cds = new FlowDocument((Block)XamlReader.Load(xamlFile));                        
viewer.Document = cds;
xamlFile.Close();