在 .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 设为:
Info.plist 中声明)⚠️ 注意:Resources/Fonts/ 是约定路径,MAUI 会自动识别该目录下的字体用于跨平台加载。
iOS 不会自动加载嵌入字体,必须显式声明。打开 Platforms/iOS/Info.plist,在 内添加:
UIAppFonts Fonts/MyFont.ttf
字体文件路径要和项目中实际位置一致(区分大小写),且仅支持 .ttf / .otf 格式。
MAUI 使用 字体文件名(不含扩展名)或 PostScript 名 引用字体。推荐优先用文件名,更稳定:
FontFamily="MyFont.ttf"(注意带 .ttf 后缀)label.FontFamily = "MyFont.ttf";
✅ 正确写法(推荐):
❌ 错误写法:
(不带后缀可能在某些平台失效)
? 小技巧:如果字体显示异常,可用 FontManager.Current.GetInstalledFonts() 在运行时查看已加载的字体名(调试用)。
字体未生效?按顺序检查:
Resources/Fonts/ 下,且 Build Action 正确Info.plist 并重新部署(缓存可能导致旧配置残留)基本上就这些。不复杂但容易忽略 Info.plist 或后缀名,踩过坑就知道关键在哪了。