void DrawElement(Func <Rect> add, Pen pen = null, Brush brush = null) { if (pen == null && brush == null) { return; } var lgb = brush as LinearGradientBrush; if (lgb != null) { var cg = CreateGradient(lgb.Stops); context.SaveState(); var frame = add(); context.Clip(); CGGradientDrawingOptions options = CGGradientDrawingOptions.DrawsBeforeStartLocation | CGGradientDrawingOptions.DrawsAfterEndLocation; var size = frame.Size; var start = Conversions.GetCGPoint(lgb.Absolute ? lgb.Start : frame.Position + lgb.Start * size); var end = Conversions.GetCGPoint(lgb.Absolute ? lgb.End : frame.Position + lgb.End * size); context.DrawLinearGradient(cg, start, end, options); context.RestoreState(); brush = null; } var rgb = brush as RadialGradientBrush; if (rgb != null) { var cg = CreateGradient(rgb.Stops); context.SaveState(); var frame = add(); context.Clip(); CGGradientDrawingOptions options = CGGradientDrawingOptions.DrawsBeforeStartLocation | CGGradientDrawingOptions.DrawsAfterEndLocation; var size = frame.Size; var start = Conversions.GetCGPoint(rgb.GetAbsoluteCenter(frame)); var r = (nfloat)rgb.GetAbsoluteRadius(frame).Max; var end = Conversions.GetCGPoint(rgb.GetAbsoluteFocus(frame)); context.DrawRadialGradient(cg, start, 0, end, r, options); context.RestoreState(); brush = null; } if (pen != null || brush != null) { var mode = SetPenAndBrush(pen, brush); add(); context.DrawPath(mode); } }
extern static void CGContextDrawRadialGradient (IntPtr context, IntPtr gradient, PointF startCenter, float startRadius, PointF endCenter, float endRadius, CGGradientDrawingOptions options);
public void DrawLinearGradient (CGGradient gradient, PointF startPoint, PointF endPoint, CGGradientDrawingOptions options) { CGContextDrawLinearGradient (handle, gradient.handle, startPoint, endPoint, options); }
extern static void CGContextDrawLinearGradient(IntPtr context, IntPtr gradient, PointF startPoint, PointF endPoint, CGGradientDrawingOptions options);
public void DrawRadialGradient(CGGradient gradient, CGPoint startCenter, nfloat startRadius, CGPoint endCenter, nfloat endRadius, CGGradientDrawingOptions options) { context.CGContext.DrawRadialGradient(gradient, startCenter, startRadius, endCenter, endRadius, options); }
public void DrawLinearGradient (CGGradient gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options) { CGContextDrawLinearGradient (handle, gradient == null ? IntPtr.Zero : gradient.handle, startPoint, endPoint, options); }
public void DrawRadialGradient(CGGradient gradient, PointF startCenter, float startRadius, PointF endCenter, float endRadius, CGGradientDrawingOptions options) { CGContextDrawRadialGradient(handle, gradient.handle, startCenter, startRadius, endCenter, endRadius, options); }
public void DrawLinearGradient(CGGradient gradient, PointF startPoint, PointF endPoint, CGGradientDrawingOptions options) { CGContextDrawLinearGradient(handle, gradient.handle, startPoint, endPoint, options); }
public void DrawLinearGradient(CGGradient gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options) { CGContextDrawLinearGradient(handle, gradient == null ? IntPtr.Zero : gradient.handle, startPoint, endPoint, options); }
extern static void CGContextDrawLinearGradient(/* CGContextRef __nullable */ IntPtr context, /* CGGradientRef __nullable */ IntPtr gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options);
public void DrawRadialGradient (CGGradient gradient, CGPoint startCenter, nfloat startRadius, CGPoint endCenter, nfloat endRadius, CGGradientDrawingOptions options){ context.CGContext.DrawRadialGradient (gradient, startCenter, startRadius, endCenter, endRadius, options); }
public void DrawLinearGradient (CGGradient gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options){ context.CGContext.DrawLinearGradient (gradient, startPoint, endPoint, options); }
public void DrawRadialGradient (CGGradient gradient, CGPoint startCenter, nfloat startRadius, CGPoint endCenter, nfloat endRadius, CGGradientDrawingOptions options) { CGContextDrawRadialGradient (handle, gradient == null ? IntPtr.Zero : gradient.handle, startCenter, startRadius, endCenter, endRadius, options); }
extern static void CGContextDrawRadialGradient (/* CGContextRef __nullable */ IntPtr context, /* CGGradientRef __nullable */ IntPtr gradient, CGPoint startCenter, /* CGFloat */ nfloat startRadius, CGPoint endCenter, /* CGFloat */ nfloat endRadius, CGGradientDrawingOptions options);
public void DrawRadialGradient (CGGradient gradient, PointF startCenter, float startRadius, PointF endCenter, float endRadius, CGGradientDrawingOptions options) { CGContextDrawRadialGradient (handle, gradient.handle, startCenter, startRadius, endCenter, endRadius, options); }
extern static void CGContextDrawLinearGradient(IntPtr context, IntPtr gradient, PointF startPoint, PointF endPoint, CGGradientDrawingOptions options);
extern static void CGContextDrawRadialGradient(/* CGContextRef __nullable */ IntPtr context, /* CGGradientRef __nullable */ IntPtr gradient, CGPoint startCenter, /* CGFloat */ nfloat startRadius, CGPoint endCenter, /* CGFloat */ nfloat endRadius, CGGradientDrawingOptions options);
extern static void CGContextDrawRadialGradient(IntPtr context, IntPtr gradient, PointF startCenter, float startRadius, PointF endCenter, float endRadius, CGGradientDrawingOptions options);
public void DrawRadialGradient(CGGradient gradient, CGPoint startCenter, nfloat startRadius, CGPoint endCenter, nfloat endRadius, CGGradientDrawingOptions options) { CGContextDrawRadialGradient(handle, gradient == null ? IntPtr.Zero : gradient.handle, startCenter, startRadius, endCenter, endRadius, options); }
public void DrawLinearGradient(CGGradient gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options) { context.CGContext.DrawLinearGradient(gradient, startPoint, endPoint, options); }
extern static void CGContextDrawLinearGradient (/* CGContextRef __nullable */ IntPtr context, /* CGGradientRef __nullable */ IntPtr gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options);