Как заполнить эллипсы разными цветами с помощью GraphicsPath в WinForms?

Чтобы решить проблему мерцания в 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 ответов

Другие вопросы по тегам