summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Tizen/Renderers/BoxViewRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/Renderers/BoxViewRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.Tizen/Renderers/BoxViewRenderer.cs61
1 files changed, 61 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/BoxViewRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/BoxViewRenderer.cs
new file mode 100644
index 00000000..7a9f756d
--- /dev/null
+++ b/Xamarin.Forms.Platform.Tizen/Renderers/BoxViewRenderer.cs
@@ -0,0 +1,61 @@
+using System.ComponentModel;
+using EColor = ElmSharp.Color;
+using ERectangle = ElmSharp.Rectangle;
+
+namespace Xamarin.Forms.Platform.Tizen
+{
+ public class BoxViewRenderer :
+ VisualElementRenderer<BoxView>
+ {
+ static readonly EColor s_defaultColor = EColor.Transparent;
+
+ ERectangle _control;
+
+ public BoxViewRenderer()
+ {
+ }
+
+ protected override void OnElementChanged(ElementChangedEventArgs<BoxView> 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);
+ }
+ }
+}