Xamarin表单自定义进度条模糊

问题描述 投票:0回答:1

我使用自定义渲染器自定义进度条的高度和颜色,但进度条变得模糊:

enter image description here

我的CustomRenderer看起来像这样:

public class ColorProgressBarRenderer : ProgressBarRenderer
{
    public ColorProgressBarRenderer(Context context) : base(context)
    {
    }

    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e)
    {
        base.OnElementChanged(e);

        if (e.NewElement == null)
        {
            return;
        }

        if (Control != null)
        {
            UpdateBarColor();
        }
    }

    protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        base.OnElementPropertyChanged(sender, e);

        if (e.PropertyName == ColorProgressBar.BarColorProperty.PropertyName)
        {
            UpdateBarColor();
        }
    }

    private void UpdateBarColor()
    {
        var element = Element as ColorProgressBar;

        Control.ProgressTintList = Android.Content.Res.ColorStateList.ValueOf(element.BarColor.ToAndroid());
        Control.ScaleY = 10f;
    }
}

我的CustomProgressBar看起来像这样:

public class ColorProgressBar : ProgressBar
{
    //public static BindableProperty BarColorProperty = BindableProperty.Create<ColorProgressBar, Color>(p => p.BarColor, default(Color));
    public static BindableProperty BarColorProperty = BindableProperty.Create(nameof(BarColor), typeof(Color), typeof(ColorProgressBar), default(Color));

    public Color BarColor
    {
        get { return (Color)GetValue(BarColorProperty); }
        set { SetValue(BarColorProperty, value); }
    }
}

这仅在Android中发生,使用我的iOS渲染器,一切正常!为什么会这样呢?

c# xamarin xamarin.forms xamarin.android
1个回答
0
投票

您可以尝试此高级进度栏。https://www.nuget.org/packages/MultiColor.ProgressBar/文档:https://github.com/udayaugustin/ProgressBar/blob/master/README.md

它支持多种颜色。它具有[]等属性

  • 高度
  • 宽度
  • 半径半径等
© www.soinside.com 2019 - 2024. All rights reserved.