【发布时间】:2014-06-06 07:35:18
【问题描述】:
有两个 Xaml 阅读器。其中一个包含在System.Xaml 中,另一个包含在System.Windows.Markup 中。
它们有什么区别?
【问题讨论】:
-
@franssu 因为有些人只是没有其他事情可做。
标签: c# wpf silverlight xaml markup
有两个 Xaml 阅读器。其中一个包含在System.Xaml 中,另一个包含在System.Windows.Markup 中。
它们有什么区别?
【问题讨论】:
标签: c# wpf silverlight xaml markup
取自MSDN:
WPF 类型和 WPF 技术通常支持依赖于访问 WPF 内部的概念。例如,WPF 如何实现依赖属性依赖于有效类型成员查找的内部技术。通过
XamlWriter和XamlReader从System.Windows.Markup命名空间和PresentationFramework 程序集提供的XAML 读写API 启用对这些内部的访问。但是,System.Xaml程序集(基于System.Xaml.XamlReader、System.Xaml.XamlWriter的类)中的低级别 XAML 读取器和 XAML 写入器无权访问 WPF 内部。从System.Xaml到任何 WPF 特定的程序集都没有依赖关系。如果无法访问 WPF 内部,System.Xaml读取器和写入器将无法正确加载或保存所有 WPF 类型或基于 WPF 类型的类型。特别是,System.Xaml读者和作者不了解诸如 WPF 依赖属性支持属性存储之类的概念,或 WPF 如何使用样式、资源字典和模板的所有细节。因此,您可以选择:
- 如果要加载 WPF 类型,和/或以任何方式使用 BAML 形式的 XAML,请使用 PresentationFramework XAML 读取器和 XAML 写入器。
- 如果您不依赖任何 WPF 类型或 XAML 的 BAML 形式,并且由于特定于该框架的原因未使用其他特定技术的 XAML 读取器或 XAML 写入器实现,请使用
System.XamlXAML 读取器和 XAML作家。
【讨论】: