如何在.NET MAUI应用的指定位置显示默认AppIcon?
.NET MAUI自定义位置引用AppIcon空白问题解决办法
直接用Image Source="appicon.png"显示空白的核心原因是:.NET MAUI自动生成的系统AppIcon不会被放到普通可引用的资源目录中,它仅用于系统级的应用图标展示(桌面、启动器等),无法直接通过普通图片引用方式调用。
以下是几种可行的解决方式:
手动导出指定尺寸的PNG资源(通用方案)
从你的SVG背景和前景文件中,导出自定义位置需要的尺寸(比如24x24、32x32等),命名为appicon-custom.png这类不会和系统生成图标冲突的名称。将文件放到项目的Resources/Images目录,确保项目文件中包含如下配置:<MauiImage Include="Resources\Images\appicon-custom.png" />之后在XAML中直接引用即可:
Image Source="appicon-custom.png"复用系统生成的图标资源(分平台)
- Android:系统生成的图标位于
obj\Debug\net8.0-android\res\mipmap-xxx目录下,可复制对应尺寸的图标到资源目录,或者直接通过资源ID引用:<Image Source="@mipmap/ic_launcher" /> - Windows:生成的图标在
obj\Debug\net8.0-windows10.0.19041.0\Platforms\Windows\Appx\Resources目录中,复制到资源目录后正常引用即可
- Android:系统生成的图标位于
直接引用SVG源文件(推荐)
将你的AppIcon背景和前景SVG文件添加到Resources\Images目录,在项目文件中配置:<MauiSvg Include="Resources\Images\appicon-background.svg" /> <MauiSvg Include="Resources\Images\appicon-foreground.svg" />安装
Microsoft.Maui.Controls.SvgNuGet包后,使用SvgImage控件组合或单独引用SVG,无需转换为PNG:<SvgImage Source="appicon-background.svg" WidthRequest="32" HeightRequest="32" />
不需要像Xamarin时代那样手动创建全尺寸的多版本图标,只需针对自定义位置需要的尺寸处理即可,SVG引用方式更灵活且适配不同分辨率。
内容的提问来源于stack exchange,提问作者Ade
相关产品推荐
相关产品推荐

