Чтобы решить проблему мерцания в 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).
Есть ли способ нарисовать каждую фигуру другим цветом при продолжении объемного рисования, например, над одним?