.NET MAUI Windows端Font Awesome图标完全空白问题求助
.NET MAUI Windows端Font Awesome图标完全不显示问题排查
开发.NET MAUI应用时,Windows端可正常运行,但与Android、iOS端不同,Windows端的Font Awesome图标完全不显示(并非空白方块,而是彻底无内容)。
已有的代码信息
MauiProgram.cs 字体注册代码
fonts.AddFont("font-awesome-solid.otf", "font-awesome-solid");
图标使用的XAML示例
<customcontrols:CustomButton Grid.Column="1" Grid.Row="2" x:Name="NextButton" Text="{x:Static resources:AppResources.buttonTextNextPage}" Clicked="OnNextButtonClicked"> <Button.ImageSource> <FontImageSource FontFamily="font-awesome-solid" Glyph="{x:Static fonts:FontAwesome.CaretRight}" Size="32" /> </Button.ImageSource> </customcontrols:CustomButton>
补充的CustomButton自定义控件代码
public CustomButton() { this.SetDynamicResource(VisualElement.StyleProperty, SystemConstant.CustomButtonStyle); } private string _glyphName = null; public string Glyph { get { return _glyphName; } set { _glyphName = value; var fis = new FontImageSource { FontFamily = "font-awesome-solid#", Glyph = value, Size = 25, }; fis.SetDynamicResource(FontImageSource.ColorProperty, "LabelTextColor"); this.ImageSource = fis; } }
排查思路
- 检查字体名称匹配:Windows端对字体名称识别更严格,右键打开
font-awesome-solid.otf文件,查看属性→详细信息里的“标题”字段,确认注册的别名font-awesome-solid是否和字体内部名称一致,若不一致需调整注册或使用的FontFamily值。 - 移除FontFamily的#后缀:CustomButton代码中FontFamily用了
font-awesome-solid#,Windows端不需要这个后缀,改成和注册时一致的font-awesome-solid再测试。 - 确认字体文件嵌入属性:检查
font-awesome-solid.otf的生成操作是否设为MauiFont,复制到输出目录设为“如果较新则复制”,确保Windows端能读取到字体文件。 - 验证Glyph值正确性:确认
fonts:FontAwesome.CaretRight对应的Glyph编码是否和当前使用的Font Awesome版本匹配,不同版本图标编码可能有差异。 - 排查ImageSource覆盖问题:XAML中设置了Button.ImageSource,而CustomButton的Glyph属性也会设置ImageSource,检查是否存在属性冲突导致图标被覆盖的情况。
- 排除颜色/尺寸干扰:临时把FontImageSource的Size调大、颜色设为红色,排除因颜色和背景一致或尺寸过小导致看不到图标的可能。
内容的提问来源于stack exchange,提问作者Mi-krater
相关产品推荐
相关产品推荐

