ResourceDictionary.Source 属性

来源:互联网 发布:自动发卡程序源码 编辑:程序博客网 时间:2024/05/17 19:20

ResourceDictionary.Source 属性

获取或设置提供合并资源字典源位置的 URI。

<ResourceDictionary Source="uri"/>

通常,Source 指定为引用资源字典的位置的 URI。

  • 如果要合并的 ResourceDictionary 的 XAML 文件使用“页面”“资源”生成操作,则您可指定 XAML 文件的名称(不包含前导斜杠)。处理 Source 属性值的内部逻辑假定应根据位于 DLL 的基础资源级别的同一程序集解析此类引用。

  • 对于“页”“资源”生成操作,您还可以将指定程序集名称的Source 属性指定为详细形式,并使用 component; 关键字引用程序集中的资源。例如,如果您已编译的应用程序 DLL 命名为MyApplication,并且您要合并的资源 XAML 命名为 MergedDictionary.xaml,则为Source 指定的正确值为:/MyApplication;component/MergedDictionary.xaml

  • 如果要引用不同程序集中的合并字典,则需要使用详细形式,以便指定程序集的名称。

  • 如果要合并的 ResourceDictionary 的 XAML 文件使用“内容”生成操作,并且您未为该内容文件指定任何其他的文件夹结构,则将指定一个后跟前导斜杠的 XAML 文件的名称。正斜杠被解析为相对于原始潜在包,这样一来,XAML 作为打包的“松散”文件与 XAP 包中的 DLL 处于同一根级别。

  • 如果 XAML 文件是项目指定的或是在根目录下的目录结构中打包的,则目录步骤必须包含在相对 URI 中。例如,如果您在项目定义的文件夹BrushesAndColors 中放置了 XAML 文件 brushes.xaml,并且正在使用“资源”生成操作,则要使用的源 URI 为BrushesAndColors/Brushes.xaml

有关合并字典的生成和部署选项的更多信息,请参见资源字典

通常,仅针对为 MergedDictionaries 属性(在 XAML 页定义中作为属性元素,或在代码中作为集合的ResourceDictionary 项)指定的ResourceDictionary 设置Source 属性。在此上下文中,如果为Source 设置了值,则会将在提供的 URI 中找到的字典内容合并到当前 ResourceDictionary 中。任何加载失败都会导致引发异常。

引用为 Source 的文件必须是 XAP 的一部分,或作为资源或“松散”位于应用程序 DLL 中,但仍在 XAP 中。Silverlight 不支持引用应用程序 XAP 之外的合并字典。

作为共享各应用程序之间的资源的代理技术,将合并资源字典生成到独立的 DLL 中特别有用。例如,您可能有一组在多个应用程序中使用的常用设计资源。设计者角色的人员可以使用 XAML 设计工具生成资源。然后使用 XAML 构造顶级ResourceDictionary,这反过来生成一个打包中所有资源的程序集。使用这些资源的每个项目都可以将程序集作为合并字典源引用。引用应用程序仍必须将资源程序集打包以进行部署。


App.xaml中,

[html] view plaincopyprint?
  1. <Application.Resources>  
  2.         <!-- 应该在此定义应用程序级的资源。-->  
  3.         <ResourceDictionary>  
  4.             <ResourceDictionary.MergedDictionaries>  
  5.                 <ResourceDictionary Source="Common/Themes/CustomWindowGeneric.xaml" />  
  6.             </ResourceDictionary.MergedDictionaries>  
  7.         </ResourceDictionary>  
  8.     </Application.Resources>  
原创粉丝点击