You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问引用的UWP类库中包含的资源字典?

在UWP主应用中访问组件库资源字典的解决方案

步骤1:确认组件库资源字典的配置

确保组件库内的Dictionary1.xaml文件属性设置正确:

  • 右键Dictionary1.xaml → 属性 → 生成操作选择Resource,确保资源被正确嵌入组件库。
  • 同时检查资源字典内的样式TargetType是否正确指向你的TemplatedControl,示例:
    <Style x:Key="TemplatedControlStyle" TargetType="local:TemplatedControl">
        <!-- 自定义样式内容 -->
    </Style>
    

步骤2:主应用引用组件库项目

右键主应用项目 → 添加 → 引用 → 选择你的组件库项目,完成引用后确保项目能正常编译。

步骤3:在主应用中合并组件库的资源字典

有两种方式可以合并资源字典,根据需求选择:

全局合并(App.xaml中,整个应用都能访问资源)

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <!-- 替换[组件库项目名]为你的组件库实际名称 -->
            <ResourceDictionary Source="ms-appx://[组件库项目名]/Dictionary1.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

局部合并(比如MainPage.xaml中,仅当前页面可访问)

<Page.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="ms-appx://[组件库项目名]/Dictionary1.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Page.Resources>

步骤4:为TemplatedControl应用样式

在MainPage.xaml中,先声明组件库的命名空间(替换[组件库命名空间]为实际值):

xmlns:controlLib="using:[组件库命名空间]"

然后直接为控件指定样式:

<controlLib:TemplatedControl Style="{StaticResource TemplatedControlStyle}" />

注意事项

  • 若资源仍无法访问,检查组件库是否已正确编译,主应用的引用路径是否无误。
  • UWP的资源引用路径使用ms-appx://协议,这是和WPF的核心区别,WPF用的是pack URI,不要混淆。

内容的提问来源于stack exchange,提问作者DTynewydd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 03:20:04