我使用下面的代码为我的所有按钮设置自定义字体,所有按钮都有我的新字体,一切都很好,问题是 font size
,当我在xaml中更改它,没有任何变化。
using System;
using System.Diagnostics;
using LAVA.iOS.CustomRenderer;
using LAVA.Utils.CustomRenderer;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRenderer(typeof(CustomButton), typeof(CustomButtonRenderer))]
namespace LAVA.iOS.CustomRenderer
{
public class CustomButtonRenderer : ButtonRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (Control == null || e.NewElement == null) return;
Control.Layer.BorderColor = e.NewElement.BorderColor.ToCGColor();
Control.Layer.BorderWidth = (nfloat) e.NewElement.BorderWidth;
Control.Layer.CornerRadius = e.NewElement.BorderRadius;
try
{
Control.Font = AppDelegate.GetFont(Control.Font.PointSize);
}
catch (Exception exception)
{
Debug.WriteLine(exception.Message);
}
}
}
}
这是我的AppDelegate.GetFont()
方法:
public static UIFont GetFont(nfloat fontSize)
{
if (AppFont == null)
AppFont = UIFont.FromName(Constants.FONT_IOS, fontSize);
else if (AppFont.PointSize != fontSize)
AppFont.WithSize(fontSize);
return AppFont;
}
但字体大小不会改变。
答案 0 :(得分:0)
您应该在e.NewElement上使用一个属性(例如e.NewElement.FontSize)以获取所需的字体大小。控件是本机控件,因此您只需要获得一种已经具有的相同大小的字体即可。