每个平台在 XAML 中定义的 FontFamily [英] FontFamily defined in XAML per platform
问题描述
在我的 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屋!