using System.ComponentModel; using EColor = ElmSharp.Color; using ERectangle = ElmSharp.Rectangle; namespace Xamarin.Forms.Platform.Tizen { public class BoxViewRenderer : VisualElementRenderer { static readonly EColor s_defaultColor = EColor.Transparent; ERectangle _control; public BoxViewRenderer() { } protected override void OnElementChanged(ElementChangedEventArgs e) { if (_control == null) { _control = new ERectangle(Forms.Context.MainWindow); SetNativeControl(_control); } if (e.OldElement != null) { } if (e.NewElement != null) { UpdateColor(); } base.OnElementChanged(e); } void UpdateColor() { Color colorToSet = Element.Color; if (colorToSet == Color.Default) { colorToSet = Element.BackgroundColor; } _control.Color = (colorToSet == Color.Default) ? s_defaultColor : colorToSet.ToNative(); } protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == BoxView.ColorProperty.PropertyName || e.PropertyName == VisualElement.BackgroundColorProperty.PropertyName) { UpdateColor(); } base.OnElementPropertyChanged(sender, e); } } }