示例#1
0
        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();
            }
        }
示例#2
0
        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;
            }
        }