我想用我的应用程序的自定义字体更改我的fontfamilly。
在Xamarin文档中,我可以看到我如何只为一个标签更改fontfamilly,但不能用于我的整个应用程序!
我使用Xamarin Forms for Android和IOS!
我需要更改我的字体: -Listviews -纽扣 -label
谢谢
答案 0 :(得分:3)
您可以使用Global Style将更改应用于应用中的所有元素。要更改所有Label元素的字体,可以执行以下操作:
<Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Styles.App">
<Application.Resources>
<ResourceDictionary>
<Style TargetType="Label">
<Setter Property="FontFamily" Value="sans-serif" />
<Setter Property="FontSize" Value="12" />
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
答案 1 :(得分:1)
通过这种方式,您可以按照以下方式使用XAML代码:
<Label FontFamily="Arial" Text="Hi there" />
Android 您可以为所需的所有视图覆盖默认渲染器。这是Label的一个例子。您可以对列表视图和按钮执行相同的操作。
[assembly: ExportRenderer (typeof (Label), typeof (MyLabelRenderer))]
namespace MyApp.Droid
{
public class MyLabelRenderer : LabelRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
if ( !String.IsNullOrEmpty(Element.FontFamily) )
Control.Typeface = Typeface.CreateFromAsset(Forms.Context.Assets, "Fonts/" + Element.FontFamily + ".otf");
}
}
}
当然,您需要将其映射到嵌入自定义字体的位置。在我的情况下资产/字体/ Arial.otf (构建操作:AndroidAsset)。
在 iOS 中,您需要将其添加到Resources文件夹: Resources / Arial.otf (构建操作:BundleResource),它应该与上面的XAML代码一起使用。