Monotouch将边框添加到渐变

时间:2012-06-05 13:01:58

标签: iphone xamarin.ios drawing gradient

我正在尝试为渐变按钮添加边框:

var c = bdPencil.ColorMain;
Context.SetLineWidth(bdPencil.Width);
Context.SetStrokeColor(c.R, c.G, c.B, c.A);
Context.Clip();
CGColorSpace colorSpace = CGColorSpace.CreateDeviceRGB();
CGGradient gradient = new CGGradient(colorSpace, colors, 
new float[]{ 0, 1 });
Context.DrawLinearGradient(gradient, new PointF((float)r.CenterX, (float)r.Top), new PointF((float)r.CenterX, (float)r.Bottom), 
CGGradientDrawingOptions.DrawsAfterEndLocation);
Context.RestoreState();

它不起作用。 如果我用纯色做同样的事情,一切都会起作用:

  var c = bdPencil.ColorMain;
  Context.SetLineWidth(bdPencil.Width);
  Context.SetStrokeColor(c.R, c.G, c.B, c.A);
  var g = bgPencil.ColorMain;
  Context.SetFillColor(g.R, g.G, g.B, g.A);
  Context.DrawPath(CGPathDrawingMode.FillStroke);

DrawLinearGradinet没有任何反应之后,当我试图抚摸路径时。 我想我需要像GradientStroke这样的东西,但我找不到它。

知道为什么吗?

1 个答案:

答案 0 :(得分:1)

错误在于我尝试用上下文做一切。 我绘制了一条路径,抚摸它然后我绘制了渐变并且它有效。