如何在运行时从项目中包含的XAML文件中获取文本?

时间:2015-05-24 17:32:09

标签: c# wpf xaml visual-studio-2013

我在VS 2013中使用页面构建操作在 XAML 文件中定义了几个 UserControls ,并且(想要)我想阅读XAML文本运行时并在WPF应用程序TextEdit中显示它。我知道我应该使用 XamlReader 但我无法访问内容:)

所以问题是:

  1. 有没有办法使用页面构建操作来访问应用程序中嵌入的XAML文件来读取其XML内容?可能它在这个过程中被转换为BAML所以不可能这样做,但可能是我不知道smth。
  2. 我尝试为项目中的XAML文件设置复制始终选项(至少从外部文件中读取XAML文本),但只有 .cs 文件被复制。有没有办法在项目构建中轻松复制XAML文件?
  3. 在WPF应用程序中读取和显示XAML内容的任何其他方式我都不知道?
  4. PS:如果存在任何具有类似功能的免费库,那么如果你提到它们就是+1。谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 不确定。当构建操作是Page时,xaml会被编译。因此,要从中获取xaml,只需实例化一个副本并通过XAML序列化器抛出它。现在您已经获得了对象图的xaml表示。可能不是你需要或想要的东西,但它可以100%工作。
  2. 更改构建操作。或者将资源添加到项目中并将其指向xaml文件。
  3. 可能。取决于您的目标。你总是可以反汇编像kaxaml这样的东西来看看一个简单的xaml编辑器如何在运行时实际加载并显示xaml代码。在没有告诉我们目标的情况下,我们无法就如何完成提供建议。此外,要求链接是主题。