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

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

通常,仅针对为 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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值