我有一个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)
并使用结果进行解析。
建议?
答案 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);