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="" 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"); });
问题截图
- Android模拟器XAML页面图标异常截图:Android模拟器XAML图标异常
- iOS模拟器XAML页面图标正常截图:iOS模拟器XAML图标正常
我已经检查了字体文件的路径、Build Action和注册代码,看起来都没问题,但Android上的XAML页面就是无法正确渲染图标,想请教下有没有同学遇到过类似问题,或者能给一些排查方向?
内容来源于stack exchange
相关产品推荐
相关产品推荐

