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

MAUI项目发布为EXE后Material Design图标字体无法显示求助

MAUI发布EXE后Material Design图标字体不显示的解决方案

以下是针对该问题的分步排查和解决方法:

1. 检查字体文件的项目属性

右键项目中的Material Design字体文件(如MaterialIcons-Regular.ttf),选择属性,确保:

  • 生成操作设置为 Embedded resource
  • 复制到输出目录设置为 始终复制 或 如果较新则复制

2. 确认App.xaml中的字体注册正确

在App.xaml的资源字典中注册字体,注意Windows平台的格式要求:

<Application.Resources>
    <ResourceDictionary>
        <OnPlatform x:Key="MaterialIcons" x:TypeArguments="x:String">
            <On Platform="Windows" Value="MaterialIcons-Regular.ttf#Material Icons" />
            <On Platform="Android" Value="MaterialIcons-Regular.ttf" />
            <!-- 其他平台可按需添加 -->
        </OnPlatform>
    </ResourceDictionary>
</Application.Resources>

注:Material Icons是字体的家族名,可右键字体文件→属性→详细信息→字体家族查看准确名称。

3. 验证XAML中图标引用路径

使用FontImageSource引用图标时,确保FontFamily绑定的是注册的资源键:

<Image>
    <Image.Source>
        <FontImageSource FontFamily="{StaticResource MaterialIcons}" 
                         Glyph="&#xe5d2;" 
                         Color="Black" />
    </Image.Source>
</Image>

同时确认Glyph的Unicode编码正确,可从Material Design官网获取对应图标的编码。

4. 确保发布时字体文件被正确包含

打开项目的.csproj文件,添加以下配置(如果未自动生成),确保字体文件被复制到发布目录:

<ItemGroup>
    <None Include="Resources\Fonts\MaterialIcons-Regular.ttf" CopyToOutputDirectory="PreserveNewest" />
    <EmbeddedResource Include="Resources\Fonts\MaterialIcons-Regular.ttf" />
</ItemGroup>

如果使用MSIX打包,检查打包项目的Package.appxmanifest,确认资源包含规则覆盖字体文件。

5. 调试Windows平台字体加载情况

在Windows平台代码中添加调试逻辑,验证字体是否成功加载:

#if WINDOWS
using Windows.UI.Xaml.Media;

// 在页面构造函数或OnAppearing方法中添加
foreach (var fontFamily in FontFamily.Families)
{
    System.Diagnostics.Debug.WriteLine($"已加载字体:{fontFamily.Source}");
}
#endif

运行发布后的程序,查看调试输出,确认MaterialIcons-Regular.ttf#Material Icons是否在加载列表中。

6. 检查发布目录的文件完整性

直接发布EXE后,打开发布输出文件夹,确认Resources\Fonts目录下存在对应的字体文件。如果缺失,检查项目属性中的复制设置是否生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:15:32