Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
		extern static void CGContextDrawRadialGradient (IntPtr context, IntPtr gradient, PointF startCenter, float startRadius,
								PointF endCenter, float endRadius, CGGradientDrawingOptions options);
Exemplo n.º 3
0
		public void DrawLinearGradient (CGGradient gradient, PointF startPoint, PointF endPoint, CGGradientDrawingOptions options)
		{
			CGContextDrawLinearGradient (handle, gradient.handle, startPoint, endPoint, options);
		}
Exemplo n.º 4
0
		extern static void CGContextDrawLinearGradient(IntPtr context, IntPtr gradient, PointF startPoint, PointF endPoint, CGGradientDrawingOptions options);
Exemplo n.º 5
0
 public void DrawRadialGradient(CGGradient gradient, CGPoint startCenter, nfloat startRadius, CGPoint endCenter, nfloat endRadius, CGGradientDrawingOptions options)
 {
     context.CGContext.DrawRadialGradient(gradient, startCenter, startRadius, endCenter, endRadius, options);
 }
Exemplo n.º 6
0
		public void DrawLinearGradient (CGGradient gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options)
		{
			CGContextDrawLinearGradient (handle, gradient == null ? IntPtr.Zero : gradient.handle, startPoint, endPoint, options);
		}
Exemplo n.º 7
0
 public void DrawRadialGradient(CGGradient gradient, PointF startCenter, float startRadius, PointF endCenter, float endRadius, CGGradientDrawingOptions options)
 {
     CGContextDrawRadialGradient(handle, gradient.handle, startCenter, startRadius, endCenter, endRadius, options);
 }
Exemplo n.º 8
0
 public void DrawLinearGradient(CGGradient gradient, PointF startPoint, PointF endPoint, CGGradientDrawingOptions options)
 {
     CGContextDrawLinearGradient(handle, gradient.handle, startPoint, endPoint, options);
 }
Exemplo n.º 9
0
 public void DrawLinearGradient(CGGradient gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options)
 {
     CGContextDrawLinearGradient(handle, gradient == null ? IntPtr.Zero : gradient.handle, startPoint, endPoint, options);
 }
Exemplo n.º 10
0
 extern static void CGContextDrawLinearGradient(/* CGContextRef __nullable */ IntPtr context,
                                                /* CGGradientRef __nullable */ IntPtr gradient, CGPoint startPoint, CGPoint endPoint,
                                                CGGradientDrawingOptions options);
Exemplo n.º 11
0
		public void DrawRadialGradient (CGGradient gradient, CGPoint startCenter, nfloat startRadius, CGPoint endCenter, nfloat endRadius, CGGradientDrawingOptions options){

			context.CGContext.DrawRadialGradient (gradient, startCenter, startRadius, endCenter, endRadius, options);

		}
Exemplo n.º 12
0
		public void DrawLinearGradient (CGGradient gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options){

			context.CGContext.DrawLinearGradient (gradient, startPoint, endPoint, options);

		}
Exemplo n.º 13
0
		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);
		}
Exemplo n.º 14
0
		extern static void CGContextDrawRadialGradient (/* CGContextRef __nullable */ IntPtr context,
			/* CGGradientRef __nullable */ IntPtr gradient, 
			CGPoint startCenter, /* CGFloat */ nfloat startRadius,
			CGPoint endCenter, /* CGFloat */ nfloat endRadius, CGGradientDrawingOptions options);
Exemplo n.º 15
0
		public void DrawRadialGradient (CGGradient gradient, PointF startCenter, float startRadius, PointF endCenter, float endRadius, CGGradientDrawingOptions options)
		{
			CGContextDrawRadialGradient (handle, gradient.handle, startCenter, startRadius, endCenter, endRadius, options);
		}
Exemplo n.º 16
0
 extern static void CGContextDrawLinearGradient(IntPtr context, IntPtr gradient, PointF startPoint, PointF endPoint, CGGradientDrawingOptions options);
Exemplo n.º 17
0
 extern static void CGContextDrawRadialGradient(/* CGContextRef __nullable */ IntPtr context,
                                                /* CGGradientRef __nullable */ IntPtr gradient,
                                                CGPoint startCenter, /* CGFloat */ nfloat startRadius,
                                                CGPoint endCenter, /* CGFloat */ nfloat endRadius, CGGradientDrawingOptions options);
Exemplo n.º 18
0
 extern static void CGContextDrawRadialGradient(IntPtr context, IntPtr gradient, PointF startCenter, float startRadius,
                                                PointF endCenter, float endRadius, CGGradientDrawingOptions options);
Exemplo n.º 19
0
 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);
 }
Exemplo n.º 20
0
 public void DrawLinearGradient(CGGradient gradient, CGPoint startPoint, CGPoint endPoint, CGGradientDrawingOptions options)
 {
     context.CGContext.DrawLinearGradient(gradient, startPoint, endPoint, options);
 }
Exemplo n.º 21
0
		extern static void CGContextDrawLinearGradient (/* CGContextRef __nullable */ IntPtr context,
			/* CGGradientRef __nullable */ IntPtr gradient, CGPoint startPoint, CGPoint endPoint,
			CGGradientDrawingOptions options);