You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无特定TargetType的应用中多自定义字体导入配置问题

解决Xamarin.Forms自定义字体加载问题

看起来你在Xamarin.Forms里加载自定义字体的时候卡壳了,我来帮你梳理下常见问题和正确的配置方式——毕竟字体加载这事儿细节坑还挺多的:

1. 先确认字体文件的属性配置

这是最容易忽略的基础步骤,必须先搞定:

  • Android端:在Visual Studio里选中.Droid/Assets下的字体文件,右键设置生成操作为AndroidAsset,同时把复制到输出目录设为「如果较新则复制」。如果生成操作不对,字体根本不会被打包进APK里。
  • iOS端:选中.iOS/Resources下的字体文件,设置生成操作为BundleResource,复制选项同样设为「如果较新则复制」。另外你提到已经配置了Info.plist,一定要确保里面的字体文件名和实际文件完全一致(包括大小写!iOS对这个很敏感),示例配置如下:
    <key>UIAppFonts</key>
    <array>
        <string>YourCustomBold.ttf</string>
        <string>YourCustomRegular.ttf</string>
    </array>
    

2. 修正App.xaml中的字体引用代码

你的代码片段被截断了,先给你补全正确的跨平台写法,同时指出几个关键坑点:

<Application.Resources>
    <ResourceDictionary>
        <!-- 注意这里要用x:Key而不是x:Name,这样才能在页面中引用样式 -->
        <Style x:Key="BoldFont" TargetType="Label">
            <Setter Property="FontFamily">
                <Setter.Value>
                    <OnPlatform x:TypeArguments="x:String">
                        <!-- Android格式:[字体文件名].ttf#[字体内部名称] -->
                        <On Platform="Android" Value="MyCustomBold.ttf#My Custom Bold"/>
                        <!-- iOS直接用字体的内部名称,不需要加文件名 -->
                        <On Platform="iOS" Value="My Custom Bold"/>
                        <!-- 如果有UWP的话,格式类似Android -->
                        <On Platform="UWP" Value="Assets/MyCustomBold.ttf#My Custom Bold"/>
                    </OnPlatform>
                </Setter.Value>
            </Setter>
        </Style>
    </ResourceDictionary>
</Application.Resources>

这里最容易踩的坑是字体内部名称≠文件名:

  • 你可以在Windows上双击字体文件,打开字体查看器,标题栏显示的名称就是字体的内部名称(比如文件名是CustomBold-v2.ttf,内部名称可能是Custom Bold)
  • Android和UWP都需要指定文件名#内部名称,而iOS只需要内部名称

3. 最后几步排查动作

如果配置完还是没效果,试试这些操作:

  • 清理整个解决方案,然后重新生成所有项目(缓存问题经常导致字体不加载)
  • 在页面中正确引用样式:<Label Text="测试粗体字体" Style="{StaticResource BoldFont}" />
  • 检查字体文件是否损坏:换个字体文件测试下,排除文件本身的问题

内容的提问来源于stack exchange,提问作者Jeppe Christensen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:15:38