自动字体大小标签 Xamarin.Forms

时间:2021-07-28 11:03:00

标签: c# .net xamarin xamarin.forms

我正在寻找一种为标签创建渲染的方法。我需要显示一些信息(例如:条形码编号)我需要它以适合标签保留空间

我想显示最大字体大小的信息可能适合一行。如果需要,我需要自动调整文本大小

我在 Xamarin 上阅读了一些关于自动调整文本大小的博客,但所有解决方案看起来都很复杂且过时。

我想问一下是否有人有一些代码或一些更新的想法来解决这个功能,谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试在 Android 和 ios 上使用 textview.SetAutoSizeTextTypeWithDefaults(AutoSizeTextType.Uniform)uilabel.AdjustsFontSizeToFitWidth = true

安卓版

在您的自定义渲染器中:

class AutoFitLabel:LabelRenderer
{
    public AutoFitLabel(Context context) : base(context)
    {

    }

    protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
    {
        base.OnElementChanged(e);
        Control.SetAutoSizeTextTypeWithDefaults(AutoSizeTextType.Uniform);
    }
}

对于ios:

public class AutoFitLabel: LabelRenderer
{

    protected override void OnElementChanged (
        ElementChangedEventArgs<Label> e)
    {
        base.OnElementChanged (e);

        var label = Control as UILabel;
        if (label != null)
        {
            label.AdjustsFontSizeToFitWidth = true;             
        }
    }
}   

并在您的表单中调用 xaml:

<Label HeightRequest="80" HorizontalOptions="FillAndExpand" MaxLines="1"
               Text="This Label hasset Height to 80">
</Label>