using Xamarin.Forms; namespace Bit.App.Utilities { public static class ProgressBarExtensions { public static BindableProperty AnimatedProgressProperty = BindableProperty.CreateAttached("AnimatedProgress", typeof(double), typeof(ProgressBar), 0.0d, BindingMode.OneWay, propertyChanged: (b, o, n) => ProgressBarProgressChanged((ProgressBar)b, (double)n)); public static double GetAnimatedProgress(BindableObject target) => (double)target.GetValue(AnimatedProgressProperty); public static void SetAnimatedProgress(BindableObject target, double value) => target.SetValue(AnimatedProgressProperty, value); private static void ProgressBarProgressChanged(ProgressBar progressBar, double progress) { ViewExtensions.CancelAnimations(progressBar); progressBar.ProgressTo(progress, 500, Easing.SinIn); } } }