Как работает Graphics - C#

Узнай цену своей работы

Формулировка задачи:

Заранее прошу простить мою тупость и сильно не ругать (не сильно - можно). Это мой первый опыт работы с графикой, и я никак не могу до конца понять, как графикс работает. Разъясните, пожалуйста, в образном формате. Если , представить, что программист - это художник, то правильно ли я представляю процесс создания и отображения применительно к c#.net: Graphics g; - это художник приобретает краски и кисточки (g). Приложение - это картинная галерея. g = new Graphics.FromHwnd(this.Handle); - это художник приходит в галерею и заключает контракт, что он будет рисовать красками и кисточками g на холсте (форме приложения). Холст висит в рамке на стене галереи. Либо Bitmap bmp = new Bitmap(500, 500); - приобретает себе чистый холст и g = new Graphics.FromImage(bmp); - рисует своими красками и кисточками g на этом холсте bmp в своей мастерской, а потом this.BackgroundImage = bmp; - относит готовую картину в галерею и вешает ее в рамку на стене. Также Image img = new Image.FromFile(filename); - он может взять нарисованную картину и g = new Graphics.FromImage(img); - дорисовывать ее. Если все так, то где художнику лучше рисовать: в своей мастерской Graphics.FromImage(bmp) или сразу в галерее Graphics.FromHwnd(this.Handle)? Т.е. как эти варианты влияют работу приложения: может, например, если художник часто перерисовывает картину, то при рисовании на собственном холсте много времени будет уходить на беготню от мастерской до галереи. Или еще как? Еще, когда художник рисует сразу в галерее Graphics.FromHwnd(this.Handle), краски не высыхают до конца. И бывает, что в галерее места мало, и одна кртина (окно) накладывается на другую и затирает невысохшие краски. Поэтому, когда верхняя картина убирается, художник должен восстановить нижнюю картину (поэтому все вышеперечисленные процедуры рисования должны находиться в событии OnPaint). А когда он приносит из своей мастерской готовый холст g = new Graphics.FromImage(bmp); this.BackgroundImage = bmp; - краски успевают высохнуть и ничем не стираются. Или готовый холст, принесенный в галерею, тоже перерисовывается, только автоматически самой галереей? Насколько верно вышесказанное? Поправьте, если что не так. Если не влом... Какие еще моменты нужно понять, чтобы правильно применить graphics в проекте?

Решение задачи: «Как работает Graphics»

textual
Листинг программы
this.DoubleBuffered = true;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5