[.net] графика
где взять graphics?
Рисуй из Paint, в таймере вызывай Control.Invalidate;
Имо, лучше рисовать в таймере, а отображать (переносить на форму) в Paint.
Тогда придётся лишний раз создавать Graphics и делать третий буфер.
Кроме того дефолтный таймер неточный.
лишний буфер всяко лишним не будет - вдруг не только в таймере надо что-то менять, да и чтобы могло пройти несколоько событий таймера, пока не вызовется OnPaint (например, когда окно не видно, перерисовывать его незачем, достаточно в памяти разобраться, поменять нужные значения)
потеря производительности и памяти
> вдруг не только в таймере надо что-то менять
ну и пусть меняют
> да и чтобы могло пройти несколоько событий таймера, пока не вызовется OnPaint
они и так могут пройти
> (например, когда окно не видно, перерисовывать его незачем, достаточно в памяти разобраться, поменять нужные значения)
что в Paint, что в таймере это решается заменой добавлением if (!AmIvisible return;
они и так могут пройтиЭто есть дублирование функций ОСи.
что в Paint, что в таймере это решается заменой добавлением if (!AmIvisible return;
Он и так вызовет Paint только если видно окошко.
> Тогда придётся лишний раз создавать Graphics и делать третий буфер.
как в таймере создать Graphics?
using(var g = Graphics.FromImage(myBackBuffer{ code; }
using (var g = this.CreateGraphics
{
}
обоим спасибо
Оставить комментарий
state7401281
как рисовать не из paint event'а, а с таймера?