Я пытаюсь создать плавную анимацию в приложении формы C #.
Что мне в основном нужно сделать, так это вызвать некоторые функции рисования для создания макета пользовательского интерфейса.
IЯ уже смотрел онлайн и перепробовал много вариантов, но ни один из них не был полностью успешным с точки зрения видимого мерцания.
Я установил свойства формы на:
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, true);
this.DoubleBuffered = true;
Тогда у меня есть отдельныйЧтобы нарисовать одно из меню, я собираю изображение в памяти в виде растрового изображения, а затем печатаю результат на экране.
Bitmap curBitmap = new Bitmap(200, 700);
Graphics tempGraph1;
tempGraph1 = Graphics.FromImage(curBitmap);
tempGraph1.FillRectangle(s1.color, r1);
tempGraph1.FillEllipse(s1.color, e1);
tempGraph1.FillEllipse(Brushes.White, c1);
formGraphT1.DrawImage(curBitmap, 0, timer1_count);
Так что, даже имея всего один вызов DrawImage за цикл, некоторые мерцаютвсе еще заметно.Чувствуется, что скорость fps где-то ограничена или двойная буферизация на самом деле не происходит.Есть мысли?
Спасибо, .A