Пример #1
0
        public DrawingBrushDrawable(AView view, VisualElement element, DrawingBrush drawingBrush)
        {
            if (element.Width >= 0 || element.Height >= 0)
            {
                drawingBrush.SetSize(element.Width, element.Height);
            }

            this.Paint.AntiAlias = true;

            using (DisplayMetrics metrics = view.Context.Resources.DisplayMetrics)
                _density = metrics.Density;

            _pathFillBounds   = new RectF();
            _pathStrokeBounds = new RectF();

            _aspect           = Stretch.None;
            this.view         = view;
            this.element      = element;
            this.drawingBrush = drawingBrush;
            this.drawingBrush.PropertyChanged += this.DrawingBrushOnPropertyChanged;
            this.drawingBrush.GeometryChanged += this.DrawingBrushOnGeometryChanged;

            this.UpdateFill(this.drawingBrush.Fill);
            this.UpdateStroke(this.drawingBrush.Stroke);
            this.UpdateStrokeThickness((float)this.drawingBrush.StrokeThickness);
            this.UpdateStrokeDashOffset((float)this.drawingBrush.StrokeDashOffset);
            this.UpdateAspect(this.drawingBrush.Aspect);
            this.UpdateStrokeDashArray(this.drawingBrush.StrokeDashArray.ToArray());
            this.UpdateStrokeLineCap(this.drawingBrush.StrokeLineCap.ToAndroid());
            this.UpdateStrokeLineJoin(this.drawingBrush.StrokeLineJoin.ToAndroid());
            this.UpdateStrokeMiterLimit((float)this.drawingBrush.StrokeMiterLimit);
        }