Как заполнить эллипсы разными цветами с помощью GraphicsPath в WinForms? - PullRequest
0 голосов
/ 17 ноября 2018

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

Есть ли способ нарисовать каждую фигуру другим цветом при продолжении объемного рисования, например, над одним?

...