public override void Draw(RectangleF rect)
{
RectangleF allRect = Bounds;
RectangleF circleRect = new RectangleF(allRect.Location.X + 2, allRect.Location.Y + 2, allRect.Size.Width - 4, allRect.Size.Height - 4);
CGContext context = UIGraphics.GetCurrentContext();
// Draw background
context.SetStrokeColor(1.0f, 1.0f, 1.0f, 1.0f);
// white
context.SetFillColor(1.0f, 1.0f, 1.0f, 0.1f);
// translucent white
context.SetLineWidth(2.0f);
context.FillEllipseInRect(circleRect);
context.StrokeEllipseInRect(circleRect);
// Draw progress
float x = (allRect.Size.Width / 2);
float y = (allRect.Size.Height / 2);
context.SetFillColor(1.0f, 1.0f, 1.0f, 1.0f);
// white
context.MoveTo(x, y);
context.AddArc(x, y, (allRect.Size.Width - 4) / 2, -(float)(Math.PI / 2), (float)(Progress * 2 * Math.PI) - (float)(Math.PI / 2), false);
context.ClosePath();
context.FillPath();
}
}