public void FillPolygon(Brush brush, PointF[] points)
        {

            this.paint.Color = brush.Color.ToAColor();
            this.paint.Flags = this.Flags;
            this.paint.SetStyle(droid.Paint.Style.Fill);

            // TODO: test that this works
            droid.Path path = new droid.Path();
            foreach (PointF p in points)
            {
                path.LineTo(p.X, p.Y);
            }

            this.canvas.DrawPath(path, this.paint);
        }
        public Region[] MeasureCharacterRanges(string text, Font font, RectangleF layoutRect, StringFormat stringFormat)
        {

            using (var _p = new droid.Paint(this.paint))
            using (var _path = new droid.Path())
            using (var _fm = _p.GetFontMetrics())
            {
                _p.TextSize = font.Size;
                _p.SetTypeface(font.FontFamily.Typeface);
                _p.SetStyle(droid.Paint.Style.Stroke);
                _p.GetTextPath(text, 0, text.Length, 0, 0, _path);

                var _rectf = new droid.RectF();
                _path.ComputeBounds(_rectf, true);

                return new Region[] { new Region(_rectf) };

            }

        }
        public void DrawPolygon(Pen pen, Point[] points)
        {
            this.paint.Color = pen.Color.ToAColor(); ;
            this.paint.Flags = this.Flags;
            this.paint.SetStyle(droid.Paint.Style.Stroke);
            this.paint.StrokeWidth = pen.Width;

            // TODO: test that this works
            droid.Path path = new droid.Path();
            foreach (Point p in points)
            {
                path.LineTo(p.X, p.Y);
            }

            this.canvas.DrawPath(path, this.paint);
        }