使用 Xamarin 和 mvvmcross,我创建了一个自定义绑定来为标签提供字体。然后我使用转换器将字符串转换为字体。
自定义绑定:
public class LabelFontTargetBinding : MvxTargetBinding
{
public LabelFontTargetBinding(UILabel label)
: base(label)
{
}
public override void SetValue(object value)
{
Label.Font = (UIFont) value;
}
}
转换器:
public class StringToFontConverter : MvxValueConverter<string, UIFont>
{
protected override UIFont Convert(string value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return UIFont.FromName(value, 80.0f);
}
}
这很好用,只是它覆盖了label.AdjustsFontSizeToFitWidth = true;
. 在这种情况下,字体大小将始终为80.0f
.
是否有另一种方法可以将 UIFont 绑定到 UILabel 而不会覆盖(覆盖?) AdjustsFontSizeToFitWidth?