【发布时间】:2018-07-02 12:11:38
【问题描述】:
对于 WPF 项目,可以将 *.xaml 文件编译为 Page 或 Resource。
Resource 直接将原始 *.xaml 文件存储在程序集的资源中。这适用于没有代码后面且没有“特殊”行为的文件。这意味着简单的 <ResourceDictionary> 文件可以正常工作,除了与主题相关的文件 (Theme\Generic.xaml)。
设置为Page 的文件被编译成BAML 文件并存储在资源中。这支持原始 *.xaml 文件支持的所有内容以及所有特殊情况和代码隐藏内容。
在一个测试项目中,我找不到两种方法之间的任何显着差异。 Resource 方法的缺点是不检查文件。意味着它不必包含合法的 XAML 代码。如果将<ResourceDictionary> 存储为Resource 或Page 一样,如何将其包含到Window 中并使用内容。
我自然会将文件设置为Page 以进行错误检查。我看不出使用Resource 方法的原因。在the documentation 中,首先提到了将文件处理为Resource 的方法,但没有说明为什么有人会将它用于*.xaml 文件。
所以问题是:
是否有理由将 WPF XAML 文件设置为 Resource?
【问题讨论】: