0

使用 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?

4

0 回答 0