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

UWP XAML中引用嵌入式资源失败的问题求助

我之前也踩过UWP引用类库嵌入式资源的坑,咱们一步步拆解问题,大概率是这几个环节没做好:

排查UWP类库嵌入式资源引用问题

第一步:先确认资源的属性设置(最容易忽略!)

你得确保类库里的File.png和Test.ttf属性完全正确:

  • 在Visual Studio里选中资源文件,右键→属性
  • 生成操作必须设为Resource(划重点:不是Embedded Resource!UWP里这个选项是给传统.NET用的,UWP专属的资源设置是Resource)
  • 复制到输出目录设为不复制(因为资源会直接嵌入到程序集里,不需要单独复制)

第二步:图片资源的正确URI写法

你试的两种写法其实混淆了WPF和UWP的规则!UWP的URI和WPF不一样,分两种情况:

  1. 如果是普通UWP类库(.NET Native),正确写法是:

    <Image Source="ms-appx:///MyLibrary/File.png" />
    

    也可以用简化版:

    <Image Source="/MyLibrary/File.png" />
    

    这里完全不需要加;Component,那是WPF里的语法,UWP不认这个!

  2. 如果是**.NET Standard类库被UWP项目引用**,才需要用pack://格式,但要写全:

    <Image Source="pack://application:,,,/MyLibrary;component/File.png" />
    

    注意application:,,,这个前缀不能丢,同时类库的资源属性还是要设为Resource。

第三步:字体资源的特殊注意事项

字体的坑更多,除了属性要对,还有两个关键点:

  • URI写法和图片一致,UWP里不用;Component,比如:

    <TextBlock Text="Test" FontFamily="ms-appx:///MyLibrary/Test.ttf#Font Name" />
    
  • 这里的#Font Name必须是字体内部的真实名称,不是文件名!比如你文件名是Test.ttf,实际字体名可能是Test Regular或者Test Bold,右键字体文件→安装,然后在控制面板的字体里就能看到它的真实名称,一定要对应上,不然字体根本不会生效。

  • 要是还不行,先把字体放到UWP主项目的Assets文件夹里,用本地路径测试,确认字体本身没问题,再移回类库。

最后验证步骤

  1. 清理整个解决方案,先重新生成类库,再生成UWP主项目(避免缓存问题)
  2. 可以用ILSpy之类的工具打开类库的输出文件(.winmd或.dll),确认资源已经嵌入进去了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:01:32