C# MAUI怎么实现自定义字体 MAUI嵌入字体教程

来源:这里教程网 时间:2026-02-21 17:35:16 作者:

在 .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
,在
<dict></dict>
内添加:

<key>UIAppFonts</key>
<array>
  <string>Fonts/MyFont.ttf</string>
</array>

字体文件路径要和项目中实际位置一致(区分大小写),且仅支持

.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 或后缀名,踩过坑就知道关键在哪了。

相关推荐