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 に答える