Billing/Billing/Billing.Android/Renderers/TintImageRenderer.cs
2022-02-25 13:53:52 +08:00

37 lines
1.1 KiB
C#

using Android.Content;
using Billing.Droid.Renderers;
using Billing.UI;
using System.ComponentModel;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(TintImage), typeof(TintImageRenderer))]
namespace Billing.Droid.Renderers
{
public class TintImageRenderer : ImageRenderer
{
public TintImageRenderer(Context context) : base(context)
{
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == nameof(TintImage.PrimaryColor) && Control?.Drawable != null && Element is TintImage image)
{
Control.Drawable.SetTint(image.PrimaryColor?.ToAndroid() ?? 0);
}
}
protected override void OnElementChanged(ElementChangedEventArgs<Image> e)
{
base.OnElementChanged(e);
if (Control?.Drawable != null && Element is TintImage image)
{
Control.Drawable.SetTint(image.PrimaryColor?.ToAndroid() ?? 0);
}
}
}
}