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

WinUI 3如何引用其他项目中的ResourceDictionary资源字典?

WinUI 3 跨项目引用ResourceDictionary解决方案

核心差异说明

WinUI 3的XAML资源寻址规则和WPF完全不同,你使用的;component/语法、pack://application:,,,协议都是WPF专属规范,WinUI 3原生不支持,这是报错的核心原因。

前置校验项

在修改路径前先确认两个配置:

  • 主应用项目已经添加了对ResourceTestLib类库项目的引用
  • 类库中Styles/_Thickness.xaml文件的生成操作属性设置为Page,无需设置复制到输出目录

正确的引用写法

WinUI 3统一使用ms-appx:///协议寻址跨程序集资源,格式为ms-appx:///[类库程序集名称]/[资源文件在类库中的相对路径],对应你的场景写法如下:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
            <!-- Other merged dictionaries here -->
            <ResourceDictionary Source="ms-appx:///ResourceTestLib/Styles/_Thickness.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

注意事项

  • 路径开头的三个斜杠///不能省略,否则会被识别为跨域资源路径导致寻址失败
  • 路径中填写的类库名要和类库项目的程序集名称完全一致,如果你自定义过类库的程序集名称,要对应修改路径中的名称
  • 路径中资源文件的层级要和类库项目中的实际文件层级完全匹配,部分系统环境下会因大小写不匹配报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:54:07