微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Xamarin Forms 制作带有圆角的 ProgressBar

如何解决如何使用 Xamarin Forms 制作带有圆角的 ProgressBar

所以我的目标是创建一个带有圆角的 ProgressBar。这似乎比它应该的要困难得多。我曾尝试查看 StackOverflow 上的示例,但其中大多数已经过时,或者指的是 Android Studio,这不是我正在使用的。

据我所知,我需要创建一个叫做“自定义渲染器”的东西,它本质上是一个继承自 ProgressBarRenderer 的类。然后更改那里的大部分属性,这看起来有点傻,因为我认为 UI 应该使用 XAML 完成。

在尝试创建自定义渲染器时,我一直遇到多个问题。

一个是这个

enter image description here

我已经安装了 Xamarin.Forms,但它仍然不断抛出该错误。 然后还有一个关于构造函数的问题。不带任何参数的构造函数已过时且不再起作用,它需要我添加一个 Context,但我也不能添加,因为它会引发与上述相同的错误

如何正确创建一个带有圆角的进度条,中间有文字指示它的百分比是多少?

解决方法

您应该添加适当的引用以使用 ProgressBarRenderer:

using App498.Droid;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;

自定义渲染器应如下所示:

[assembly: ExportRenderer(typeof(Xamarin.Forms.ProgressBar),typeof(myProgressBarRenderer))]
namespace App498.Droid
{
    public class myProgressBarRenderer : ProgressBarRenderer {

        public myProgressBarRenderer(Context context) : base(context)
        { 
            
        }

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

        }

    }
}

如果您想为进度条添加圆角,请选中 this thread

,

我会向您推荐 SkiaSharp,图形库,它使您能够创建...一切。 请参阅此处的文档:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/graphics/skiasharp/

您需要玩一段时间才能习惯使用它,但它非常直观且易于使用。 要实现圆角,您需要使用路径,如下所述:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/graphics/skiasharp/curves/clipping

碰巧我的应用程序中还需要一个进度条。我已经绘制了一张带有透明线的图片以显示进度,将其与绿色矩形(进度本身)合并,瞧,你有进度条了。当您需要更新进度时,您只需重新绘制进度条即可。

肯定有很多其他解决方案,但我推荐这个解决方案,因为我知道它会很好用。 快乐编码 ;)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。