MAUI中使用Font Awesome需嵌入.ttf字体文件、设Build Action为MauiFont、用FontImageSource通过Unicode Glyph渲染图标,不支持HTML类名语法;可封装IconView控件提升复用性。

MAUI 中使用 Font Awesome 字体图标,核心是把图标字体文件嵌入项目、注册字体、再用 FontImageSource 或自定义控件渲染图标。它不支持直接写 这类 HTML 写法,必须走 MAUI 的原生资源加载路径。
添加 Font Awesome 字体文件到项目
下载 Font Awesome Free(推荐 v6.5+),解压后找到 webfonts\fa-solid-900.ttf(实心图标)、fa-regular-400.ttf(线框图标)、fa-brands-499.ttf(品牌图标)。把这些 .ttf 文件拖进 MAUI 项目的 Resources\Fonts\ 文件夹中,并在属性里设为:
- Build Action → MauiFont
- Copy to Output Directory → Do not copy(MAUI 会自动处理)
在 XAML 或 C# 中使用图标
MAUI 不支持 CSS 类名语法,但可以借助 FontImageSource 显示单个图标。例如,在按钮里显示用户图标:
注意要点:
-
Glyph 值是 Unicode 编码,需查 Font Awesome 官网图标页(如 fa-user 页面右上角显示的
U+f007,转成 HTML 实体写法就是) -
FontFamily 格式为
"文件名#字体真实名称",真实名称可在字体属性里查看(Windows 上双击 .ttf 文件能看到“字体名称”,通常是Font Awesome 6 Free或Font Awesome 6 Brands) - 品牌图标要用
fa-brands-499.ttf,Glyph 值同样查官网,比如 GitHub 是
封装成可复用的图标控件(推荐)
手动写 FontImageSource 太重复,建议封装一个 IconView 自定义控件:
- 新建
Controls\IconView.xaml,继承ContentView - 绑定
Icon(string)、Style(solid/regular/brands)、Size等属性 - 内部用
Image+FontImageSource动态生成,根据Style切换字体文件和字体名
这样就能统一写成:,大幅提升可维护性。
常见问题与避坑提示
实际开发中容易卡在这几个点:
- 字体文件没设对 Build Action = MauiFont → 图标不显示,控制台无报错但空白
- FontFamily 名字写错(比如漏了空格或版本号)→ 显示成方块或默认字体
- 用了 Pro 版图标(fal/fad)但只引入了 Free 版字体 → 找不到字形,显示为空
- Android 上图标模糊?加
IsOpaque="True"到Image或设置HeightRequest/WidthRequest固定尺寸
基本上就这些。MAUI 用 Font Awesome 不复杂但容易忽略字体注册细节,按步骤来基本一次跑通。










