private void ChangeFillColor() { var converter = new ColorConverter(); var color = (SolidColorBrush)converter.Convert(Element.Color, null, null, null); switch (Element.ShapeType) { case ShapeType.Box: if (Element != null) { if (_rectangle != null) { _rectangle.Fill = color; } } break; case ShapeType.Circle: if (Element != null) { if (_ellipse != null) { _ellipse.Fill = color; } } break; case ShapeType.CircleIndicator: break; default: throw new ArgumentOutOfRangeException(); } }
protected override void OnElementChanged(ElementChangedEventArgs <ShapeView> e) { base.OnElementChanged(e); if (e.OldElement != null || Element == null) { return; } var converter = new ColorConverter(); var color = (SolidColorBrush)converter.Convert(Element.Color, null, null, null); var strockColor = (SolidColorBrush)converter.Convert(Element.StrokeColor, null, null, null); var margin = new Thickness(Element.Padding.Left, Element.Padding.Top, Element.Padding.Right, Element.Padding.Bottom); switch (Element.ShapeType) { case ShapeType.Box: _rectangle = new Rectangle { Fill = color, Stroke = strockColor, StrokeThickness = Element.StrokeWidth, Margin = margin, RadiusX = Element.CornerRadius, RadiusY = Element.CornerRadius, }; SetNativeControl(_rectangle); break; case ShapeType.Circle: _ellipse = new Ellipse { Fill = color, Stroke = strockColor, StrokeThickness = Element.StrokeWidth, Margin = margin }; SetNativeControl(_ellipse); break; case ShapeType.CircleIndicator: // TODO WinPhone circle indicator break; } }