GDI + Tearing!VB.NET - PullRequest
       18

GDI + Tearing!VB.NET

1 голос
/ 18 сентября 2011

У меня проблема с графическим объектом.У меня есть цикл, который проходит через некоторый массив, и он получает изображения от них, и он рисует их в графическом окне.Все хорошо, но когда я пытаюсь изменить размер или нарисовать что-то немного более тяжелое, каждая вещь начинает мигать, как когда они рисуют.Я знаю, что слишком тяжело рисовать все эти чертовы вещи!но есть ли способ избежать разрыва?

Спасибо.

Редактировать:

мой код:

graphic.Clear(frmmain.Workspace.BackColor)
For i = 0 To mObjectsList.Count - 1
  graphic.DrawImage(mObjectsList(i).oGraphic, mObjectsList(i).oX, mObjectsList(i).oY, mObjectsList(i).oWidth, mObjectsList(i).oHeight)
Next

1 Ответ

3 голосов
/ 18 сентября 2011

графика - это переменная, которую я создал из своего графического окна. Графический объект

Picturebox не имеет графического объекта. не используйте его метод CreateGraphics (). Все, что вы рисуете, остается на экране в течение доли секунды, едва отражаясь. Вместо этого используйте e.Graphics в обработчике событий Paint. Это привлекает в растровое изображение с двойной буферизацией. PictureBox всегда имеет свойство DoubleBuffered, установленное в true. Это растровое изображение рисуется после завершения события Paint. Вот почему ваши объекты мерцают, они снова перезаписываются этим растровым изображением.

...