ResourceDictionary.Source 属性 忘是亡心i 2022-03-19 16:43 112阅读 0赞 ### [ResourceDictionary.Source 属性 ][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。 有关合并字典的生成和部署选项的更多信息,请参见[资源字典][Link 1]。 通常,仅针对为 [MergedDictionaries][] 属性(在 XAML 页定义中作为属性元素,或在代码中作为集合的 [ResourceDictionary][] 项)指定的 [ResourceDictionary][] 设置 Source 属性。在此上下文中,如果为 Source 设置了值,则会将在提供的 URI 中找到的字典内容合并到当前 [ResourceDictionary][] 中。任何加载失败都会导致引发异常。 引用为 Source 的文件必须是 XAP 的一部分,或作为资源或“松散”位于应用程序 DLL 中,但仍在 XAP 中。Silverlight 不支持引用应用程序 XAP 之外的合并字典。 作为共享各应用程序之间的资源的代理技术,将合并资源字典生成到独立的 DLL 中特别有用。例如,您可能有一组在多个应用程序中使用的常用设计资源。设计者角色的人员可以使用 XAML 设计工具生成资源。然后使用 XAML 构造顶级[ResourceDictionary][],这反过来生成一个打包中所有资源的程序集。使用这些资源的每个项目都可以将程序集作为合并字典源引用。引用应用程序仍必须将资源程序集打包以进行部署。 App.xaml中, <Application.Resources> <!-- 应该在此定义应用程序级的资源。--> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Common/Themes/CustomWindowGeneric.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> [ResourceDictionary.Source _]: http://msdn.microsoft.com/zh-cn/library/system.windows.resourcedictionary.source%28v=VS.95%29.aspx [ResourceDictionary]: http://msdn.microsoft.com/zh-cn/library/system.windows.resourcedictionary%28v=vs.95%29.aspx [Link 1]: http://msdn.microsoft.com/zh-cn/library/cc903952%28v=vs.95%29.aspx [MergedDictionaries]: http://msdn.microsoft.com/zh-cn/library/system.windows.resourcedictionary.mergeddictionaries%28v=vs.95%29.aspx
还没有评论,来说两句吧...