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

如何在UWP/C#中使用SVG文件资源设置AppBarButton图标

解决UWP/WinUI中AppBarButton使用SVG图标显示空白的问题

哦,这个问题我碰到过!核心原因是你用错控件了——BitmapIcon压根不支持SVG格式,它只认位图文件(PNG、JPG这类),所以才会显示空白。下面给你分场景提供解决方案:

如果你使用的是WinUI 3(推荐)

WinUI 3专门提供了SvgIcon控件来原生支持SVG图标,直接替换掉BitmapIcon就行:

<AppBarButton Label="SVG Icon">
    <AppBarButton.Icon>
        <SvgIcon Source="ms-appx:///Svg/MyButton.svg"/>
    </AppBarButton.Icon>
</AppBarButton>

你的SVG文件属性设置(Build Action: Content)是没问题的,只要文件路径正确、SVG本身无语法错误,就能正常显示。

如果你使用的是传统UWP

UWP原生没有专门的SVG Icon控件,但可以通过Image控件间接实现:

<AppBarButton Label="SVG Icon">
    <AppBarButton.Icon>
        <Image Source="ms-appx:///Svg/MyButton.svg" Width="20" Height="20"/>
    </AppBarButton.Icon>
</AppBarButton>

这里建议手动设置Width和Height(比如20x20),让图标适配AppBar的默认尺寸,避免显示异常。

另外还有一种更优雅的方案:把SVG转换成自定义字体图标,然后用FontIcon控件调用,这种方式更适合矢量缩放,但需要额外的工具(比如IcoMoon)把SVG转成字体文件,再将字体嵌入项目中使用。

额外检查点

  • 先确认你的SVG文件本身没问题:用浏览器打开它,看看能不能正常渲染,排除文件损坏或语法错误的可能。
  • 检查路径大小写:UWP/WinUI的文件路径是区分大小写的,确保ms-appx:///Svg/MyButton.svg和实际文件结构、文件名完全匹配。
  • 重新确认文件包含:如果图标还是不显示,右键项目里的Svg文件夹,选择「添加」→「现有项」,重新把SVG文件添加一次,确保它被正确包含在项目中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:04:13