0

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

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 这样的东西,但我找不到它。

知道为什么吗?

4

1 回答 1

1

错误是我尝试在上下文中做所有事情。我画了一条路径,抚摸它,然后我画了渐变,它起作用了。

于 2012-06-05T14:34:07.470 回答