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

MAUI Blazor Hybrid中Android设备XAML组件上FontAwesome图标无法正常显示的问题排查求助

MAUI Blazor Hybrid中Android设备XAML组件上FontAwesome图标无法正常显示的问题排查求助

大家好,我在VS2022中维护一个MAUI Blazor Hybrid项目,目前遇到了Font Awesome图标的兼容性问题,想请大家帮忙排查下:

我的项目里大部分页面是在BlazorWebView中展示的Razor页面,少数页面用XAML编写(因为要用到相机相关组件)。项目使用的是Font Awesome 7 Pro字体,在iOS模拟器和物理iOS设备上,不管是Razor页面还是XAML页面的图标都能正常显示;但到了Android模拟器和物理Android设备上,Razor页面的图标显示完全正常,XAML页面的图标却出现异常——模拟器上显示为带叉的方框,物理设备上显示成了类似亚洲字符的乱码。

下面是我的具体实现细节:

XAML页面中的图标用法

我在XAML的Button组件里用Unicode转义的方式引用图标,代码示例如下:

<Button x:Name="flashButton" 
        Text="&#xe0b8;" 
        FontFamily="FontAwesomeSolid" 
        FontSize="20" 
        TextColor="#1065A0" 
        Clicked="OnButtonLightClicked" 
        Background="White" 
        BorderColor="LightGray" 
        WidthRequest="60" 
        HeightRequest="60" 
        BorderWidth="2" 
        CornerRadius="10" 
        Padding="15,10" />

Razor页面中的图标用法

Razor页面里我用标准的Font Awesome类名方式引用,完全正常:

<i class="fa-solid fa-camera fa-2x"></i>

字体文件的配置

字体文件都放在项目的Resources/Fonts文件夹下,所有字体文件的Build Action都设置为MauiFont。

MauiProgram.cs中的字体注册

在MauiProgram.cs里我也正确注册了字体:

builder.UseMauiApp<App>()
       .UseMauiCommunityToolkit()
       .UseMauiCommunityToolkitCamera()
       .UseMauiCommunityToolkitMediaElement()
       .UseBarcodeScanning()
       .ConfigureFonts(fonts =>
       {
           fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
           fonts.AddFont("fa-solid-900.woff2", "FontAwesomeSolid");
           fonts.AddFont("fa-thin-100.woff2", "FontAwesomeThin");
       });

问题截图

我已经检查了字体文件的路径、Build Action和注册代码,看起来都没问题,但Android上的XAML页面就是无法正确渲染图标,想请教下有没有同学遇到过类似问题,或者能给一些排查方向?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 06:53:03