using(Bitmap bmp = new Bitmap(width, height)) {
usin(Graphics gfx= Graphics.FromImage(bmp)) {
// рисуем на битмапе (т.е. в памяти)
// чего хотим
}
using(Graphics formGfx = your_control.CreateGraphics()) {
// выводим на контрол наш битмап
formGfx.DrawImage(bmp, x, y);
}
}
Графика в Windows Forms
а то если много всего выводить сразу на форму - моргает.
я думал сначала так:
Graphics ^g=e->Graphics;
но он сразу связывает их и при выводе в g выводится сразу на контрол который e->Graphics - не очень практично.
Код:
Если ты печёшься о производительности рисования, то GDI+ не самый лучший выбор.
DirectDraw намного шустрее.
где можно про DirectDraw почитать кроме MSDN Library - а лучше книжечку с примерами на С++ - если у кого есть
заранее спс
Смешивать DirectX и .NET - коктейль не для слабых организмов))) Но для этого есть Managed DirectX - обёртки COM-интерфейсов для управляемого кода. Ещё лучше попробовать XNA - специальные средства для создания игр (а значит и рисования) под .NET.
всем спасибо за отклик на проблему...
Цитата: PrestuPnik
как можно рисовать сначала в память - а потом разом на контрол на форму вывести?
а то если много всего выводить сразу на форму - моргает.
а то если много всего выводить сразу на форму - моргает.
как насчет свойства DoubleBuffered? установи это свойство в true у контрола на котором рисуешь.
DoubleBuffered установил - иногда не спасает - при большом количестве вывода графики и изменении размеров все равно картинка дрожит - не приятно выглядит хоть и не моргает уже...