Українська
Типові помилки
Типові помилки
У табл. 4.3 наведено помилки, яких найчастіше припускаються під час роботи з графікою.
Таблиця 4.3. Типові помилки під час роботи з графікою
| Проблема | Причина | Виправлення |
|---|---|---|
| малюнок зникає після згортання або перекриття вікна | малювання через CreateGraphics в обробнику кнопки | зберігати дані в полях, малювати в OnPaint, викликати Invalidate() |
| під час зміни розміру залишаються «хвости» старого малюнка | перемальовується лише нова смуга вікна | ResizeRedraw = true |
| мерехтіння під час анімації | кадр малюється прямо на екрані | DoubleBuffered = true або SetStyle(OptimizedDoubleBuffer…) |
| пам’ять і об’єкти GDI зростають, згодом виняток | пера, пензлі, шрифти не звільняються | using для всього, що створено через new |
| текст графіка догори дриґом | текст малюється після ScaleTransform(1, -1) | перетворювати точки Matrix.TransformPoints |
| файл зображення не можна перезаписати | Image.FromFile тримає файл відкритим | копія new Bitmap(image) і звільнення оригіналу |
| помилка WFO1000 у власному елементі | властивість без налаштування серіалізації | атрибут [DefaultValue] або [DesignerSerializationVisibility] |