void Stroke(Pen pen)
{
// First we call the Pen with a fill of false so the brush can setup the stroke
// For LinearGradientBrush this will setup a TransparentLayer so the gradient can
// be filled at the end. See comments.
pen.Setup (this, false);
context.DrawPath(CGPathDrawingMode.Stroke);
// Next we call the Pen with a fill of true so the brush can draw the Gradient.
// For LinearGradientBrush this will draw the Gradient and end the TransparentLayer.
// See comments.
pen.Setup (this, true);
}