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); }