从xaml模板文件获取flowdocument

时间:2009-05-22 12:01:09

标签: wpf xaml flowdocument

我有一个Xaml文件,就像这样开始:

  <FlowDocument
       x:Name="flowDocument"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:Drawing="clr-namespace:System.Drawing;assembly=System.Drawing"

当前解决方案使用StremReader,通过引用xaml文件的物理路径和flowdocument,然后将数据解析到模板中。

这不是一个有效的解决方案,所以我需要在没有引用物理路径的情况下获取flowdocument。

我想在我的C#代码中使用xmlns命名空间或类似命令,并且喜欢

string result = XamlWriter.Save(flowDocument)

并使用结果进行解析。

建议?

1 个答案:

答案 0 :(得分:5)

如果我理解正确,你想从字符串中获取FlowDocument?您可以使用XamlReader.Parse

执行此操作
string result = XamlWriter.Save(flowDocument);
FlowDocument new_doc = (FlowDocument)XamlReader.Parse(result);

编辑:如果XAML文件是项目的一部分,您可以将其标记为EmbeddedResource并使用以下内容加载它:

Stream doc_stream = Assembly.GetExecutingAssembly()
                            .GetManifestResourceStream("YourNamespace.YourFile.xaml");
FlowDocument doc = (FlowDocument)XamlReader.Load(doc_stream);