Основным классом работы с графикой является класс Graphics, который находится в пространстве имен System.Drawing. Если вы захотите воспользоваться графическими методами этого класса, то не забудьте подключить к модулю его пространство имен, чтобы упростить себе доступ. В этом же пространстве имен можно найти и другие классы, которые помогут вам при работе с графикой.
Класс Graphics реализует поверхность рисования и все методы рисования GDI+. GDI расшифровывается как Graphic Device Interface (интерфейс графического устройства), и это понятие хорошо отражает его суть, потому что GDI реализует методы для рисования не только на дисплее, но и на других графических устройствах, например на принтерах. GDI+ стал продолжением первой версии графического интерфейса.
Класс Graphics реализует методы рисования объектов на устройстве дисплея. Самый простой и популярный способ получить объект этого класса — использовать обработчик события Paint. Например, создайте новое приложение и для формы создайте обработчик события Paint. Среда разработки сделает для нас следующую заготовку метода для обработчика событий:
private void Form1_Paint(object sender, PaintEventArgs e) { }
Второй параметр — это переменная класса PaintEventArgs, через которую мы получаем два очень важных свойства:
Получается, что для рисования на форме мы должны использовать объект e.Graphics и его методы. Но это только в обработчике события Paint. В остальных методах и обработчиках придется создавать экземпляр класса самому, но это уже отдельная история.
При работе с графикой нужно привыкнуть, что вам придется работать в основном с вещественными (дробными) числами. Сейчас некоторые из вас могут подумать, что дробные числа абсолютно не нужны, — ведь разрешение экрана равно целому количеству пикселов (например, 800600), так откуда берется дробная часть? Тем не менее, дробная часть есть (и вы это вскоре увидите), поэтому большинство структур, задающих размеры или области рисования, имеют на конце названия букву F (от float, плавающая точка).
Давайте пробежимся по основным методам и свойствам класса Graphics, ведь нам предстоит использовать его на протяжении всей главы. Для начала посмотрим на свойства:
Теперь посмотрим на основные методы класса Graphics. Именно они представляют наибольшую ценность и интерес:
Ограничимся пока этим списком методов. На самом деле их, наверное, в два раза больше, и подробная информация по ним, конечно же, есть в справочной системе MSDN, которая с конца 2008-го доступна на русском языке.