плавная анимация в C # с вызовами отрисовки - PullRequest
0 голосов
/ 10 марта 2011

Я пытаюсь создать плавную анимацию в приложении формы 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

1 Ответ

0 голосов
/ 10 марта 2011

Вы пытались позвонить SuspendLayout / ResumeLayout до и после рисования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...