Как предотвратить фликкеринг на картинках из windows mobile - PullRequest
1 голос
/ 14 сентября 2009

У меня есть прозрачный прямоугольник в графическом окне, если я нажимаю следующее, появляется следующее изображение и рисуется прозрачный прямоугольник. Проблема мигает, при переходе от одного изображения к другому изображение, мигает прозрачный прямоугольник. Пожалуйста, помогите мне Как избавиться от этой проблемы. Хочу устранить мерцание, помогите.

Спасибо

Ответы [ 2 ]

3 голосов
/ 14 сентября 2009

Делаем двойную буферизацию. В основном создается кэшированное изображение, которое будет отображаться. Затем, когда вам нужно перерисовать поверхность, сделайте это с другим изображением, и как только вы закончите рисовать, обменяйте это изображение с кэшированным изображением. Таким образом, у вас не будет мерцания.

Я могу написать вам пример, но я не знаю, кодируете ли вы c ++ или C #, поскольку вы добавили оба в качестве тегов. Вот пример ручной двойной буферизации в C # http://www.developerfusion.com/code/4668/double-buffering-in-net/

1 голос
/ 15 сентября 2009

Как ты это делаешь? У меня была похожая проблема, и я реализовал свой собственный Picturebox, унаследовав его от Control, переопределив OnPaint для рисования моего изображения, прозрачного фона и т. Д., А также переопределив OnPaintBackground и ничего не делая. (Поведение OnPaintBackground по умолчанию - рисовать фон элемента управления, что вам не нужно делать, если вы контролируете рисование всего элемента управления)

Вы также можете реализовать двойную буферизацию в OnPaint, если необходимо уменьшить разрыв, если ваши операции рисования занимают время.

...