如何在UWP/C#中使用SVG文件资源设置AppBarButton图标
哦,这个问题我碰到过!核心原因是你用错控件了——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
相关产品推荐
相关产品推荐

