在 .NET MAUI 中使用自定义字体需三步:一、将字体文件放入 Resources/Fonts/ 并设 Build Action(Android/macOS/Windows 为 MauiFont,iOS 为 BundleResource);二、iOS 需在 Info.plist 的 UIAppFonts 下声明字体路径;三、XAML 或 C# 中 FontFamily 必须带 .ttf/.otf 后缀(如 "MyFont.ttf")。

在 .NET MAUI 中使用自定义字体,核心是把字体文件嵌入到项目中,并在 XAML 或 C# 中正确引用。关键点有三个:字体文件添加方式、Build Action 设置、以及跨平台资源名写法(尤其注意 iOS 和 Android 的差异)。
一、添加字体文件并设置生成操作
将字体文件(如 MyFont.ttf 或 MyFont.otf)拖入 MAUI 项目的 Resources/Fonts/ 文件夹(若无则手动创建)。右键字体文件 → “属性” → 将 Build Action 设为:
- Android:`MauiFont`
-
iOS:`BundleResource`(且需在
Info.plist中声明) - Windows/macOS:`MauiFont`(Windows 支持较好,macOS 需确保字体合法可分发)
⚠️ 注意:Resources/Fonts/ 是约定路径,MAUI 会自动识别该目录下的字体用于跨平台加载。
二、iOS 必须注册字体(Info.plist 配置)
iOS 不会自动加载嵌入字体,必须显式声明。打开 Platforms/iOS/Info.plist,在 内添加:
UIAppFonts Fonts/MyFont.ttf
字体文件路径要和项目中实际位置一致(区分大小写),且仅支持 .ttf / .otf 格式。
三、在 XAML 或代码中使用字体
MAUI 使用 字体文件名(不含扩展名)或 PostScript 名 引用字体。推荐优先用文件名,更稳定:
- XAML 示例:
FontFamily="MyFont.ttf"(注意带.ttf后缀) - C# 示例:
label.FontFamily = "MyFont.ttf";
✅ 正确写法(推荐):
❌ 错误写法:
(不带后缀可能在某些平台失效)
? 小技巧:如果字体显示异常,可用 FontManager.Current.GetInstalledFonts() 在运行时查看已加载的字体名(调试用)。
四、验证与常见问题
字体未生效?按顺序检查:
- 字体文件是否真在
Resources/Fonts/下,且 Build Action 正确 - iOS 是否更新了
Info.plist并重新部署(缓存可能导致旧配置残留) - FontFamily 值是否拼写准确(含后缀、大小写)
- 是否在模拟器/设备上完整重装 App(尤其 iOS 更换字体后常需彻底卸载再装)
基本上就这些。不复杂但容易忽略 Info.plist 或后缀名,踩过坑就知道关键在哪了。










