如何在 Xamarin.Form 应用程序中为项目中具有文本属性的所有控件全局设置 FontFamily?

sol*_*mer 8 xamarin xamarin.forms

我正在为 Android 和 iOS 创建一个 Xamarin.Form 应用程序,一些用户用自己的字体替换系统默认字体,并且 Xaml 中的 FontSize 属性不适用于这些字体,并且这些字体在我的应用程序中不那么可读。1. 那么,即使用户在系统配置页面中更改了字体,我是否可以强制应用程序中使用的字体为系统默认字体?2. 如果我不能执行上述操作,我可以将我的应用程序中具有文本属性的所有控件的 FontFamily 设置为我在全局 Android 和 iOS 资产文件夹中包含的字体吗?我搜索了一些全局字体解决方案,但没有找到 Xamarin.Form 解决方案,并且某些解决方案似乎已经过时。

现在,我为控件一一设置 FontFamily,如下所示:

<Button FontFamily="{OnPlatform Android=xiaozuan.ttf#xiaozuan}"/>
Run Code Online (Sandbox Code Playgroud)

有太多的控件,我无法真正做到这一点...任何线索或帮助将不胜感激!

Che*_*SFT 0

  1. 那么,即使用户在系统配置页面中更改了字体,我是否可以强制应用程序中使用的字体为系统默认字体?

如果您想更改默认字体系列,我认为您可以使用自定义字体覆盖默认字体。 https://www.infragistics.com/help/xamarin/overriding-default-font

如果我不能执行上述操作,我可以将我的应用程序中具有文本属性的所有控件的 FontFamily 设置为我全局包含在 Android 和 iOS 资产文件夹中的字体吗

您可以使用Xamarin.Forms 中的全局样式来更改项目中的所有元素,这里是更改所有标签的字体。

 <Application.Resources>
    <ResourceDictionary>
        <Style TargetType="Label">
            <Setter Property="FontFamily" Value="sans-serif" />
            <Setter Property="FontSize" Value="20" />
        </Style>
    </ResourceDictionary>

</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

  • 被否决是因为这个答案没有提供没有第三方库的原始问题的解决方案,并且没有描述是否可以使用本机代码来完成。 (4认同)