using System.ComponentModel; using Android.Views; namespace Xamarin.Forms.Platform.Android { public class BoxRenderer : VisualElementRenderer { readonly MotionEventHelper _motionEventHelper = new MotionEventHelper(); public BoxRenderer() { AutoPackage = false; } public override bool OnTouchEvent(MotionEvent e) { if (base.OnTouchEvent(e)) return true; return _motionEventHelper.HandleMotionEvent(Parent, e); } protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); _motionEventHelper.UpdateElement(e.NewElement); UpdateBackgroundColor(); } protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName == BoxView.ColorProperty.PropertyName || e.PropertyName == VisualElement.BackgroundColorProperty.PropertyName) UpdateBackgroundColor(); } protected override void UpdateBackgroundColor() { Color colorToSet = Element.Color; if (colorToSet == Color.Default) colorToSet = Element.BackgroundColor; SetBackgroundColor(colorToSet.ToAndroid(Color.Transparent)); } } }