每个平台在 XAML 中定义的 FontFamily [英] FontFamily defined in XAML per platform

查看:10
本文介绍了每个平台在 XAML 中定义的 FontFamily的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 Xamarin Forms 项目中,我想定义每个平台的 Form family oneect 以及在应用程序中的使用.

In my Xamarin Forms project I would like to define the Form family onect per platform and the use that in the application.

到目前为止,我已经对每个控件类型的 FontFamily 进行了硬编码

So far I've hardcoded the FontFamily per controltype

  <Style x:Key="TahomaBase_Label" TargetType="Label" BaseResourceKey="SubtitleStyle">
    <Setter Property="FontFamily" Value="Tahoma" />
  ...
 </Style>

是否可以在我的 XAML 代码中全局设置 Fotnfamily 最好使用 OnPlatform 标签?

Is it posible to set Fotnfamily globally in my XAML code preferable itn a OnPlatform tag?

推荐答案

在 App.xaml 中定义样式,然后在整个应用程序中引用该样式.这样您就可以使用 OnPlatform 标记在 App.xaml 中设置一次字体,而不必担心所有其他 XAML 文件中的 OnPlatform.

Define a style in the App.xaml and then reference that style throughout the app. That way you can set the font once in the App.xaml using the OnPlatform tag and never have to worry about OnPlatform in all your other XAML files.

<Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="PlatformFontSample.App">
    <Application.Resources>
        <ResourceDictionary>
            <OnPlatform x:Key="FontFamilyName" x:TypeArguments="x:String" iOS="MarkerFelt-Thin" Android="OpenSans" WinPhone="Segoe UI" />
            <Style x:Key="FontLabel" TargetType="Label">
                <Setter Property="FontFamily" Value="{DynamicResource FontFamilyName}" />
            </Style>
        </ResourceDictionary>
    </Application.Resources>
</Application>

然后:

<Label Text="{Binding Name}" Style="{DynamicResource FontLabel}" FontSize="Medium" FontAttributes="Bold" LineBreakMode="NoWrap"/>

这篇关于每个平台在 XAML 中定义的 FontFamily的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆