如何在WinForms中使用GraphicsPath用不同的颜色填充椭圆?

时间:2018-11-17 13:18:05

标签: c# winforms system.drawing drawing2d

为解决WinForms中绘制多个形状时出现的闪烁问题,我决定使用GraphicsPath绘制所有形状,然后使用Graphics进行渲染。它运作完美;即使绘制了大量形状,绘图也不会闪烁。

 panel.Paint += (sender, args) => {
      var graphicsPath = new GraphicsPath(FillMode.Winding);

      for (int i = 0; i < 10; i++)
      {
          graphicsPath.AddEllipse(0, i * 5, 20, 20);
      }

      args.Graphics.FillPath(new SolidBrush(Color.Red),  graphicsPath);

但是,在这种情况下,所有的椭圆都是相同的颜色。使用graphics.FillPath()绘制每个椭圆时,也会在重新绘制形状时引起闪烁(在Paint事件上出现实例)。

有没有办法在继续诸如上图那样的批量绘制时以不同的颜色绘制每种形状?

0 个答案:

没有答案