Практическое руководство. Создание графических объектов для рисования
Перед тем как рисовать линии и фигуры, отображать текст или изображения и управлять ими с помощью GDI+, необходимо создать объект Graphics. Graphics представляет поверхность для рисования GDI+ и является объектом, который используется для создания графических изображений.
Работа с графикой состоит из двух этапов:
Создание объекта Graphics.
Использование объекта Graphics для рисования линий и фигур, отображения текста или изображений и управления ими.
Создание объектов Graphics
Объекты Graphics могут создаваться различными способами.
Чтобы создать объект Graphics
Получите ссылку на объект Graphics как часть PaintEventArgs в событии Paint формы или элемента управления. Это обычный способ получения ссылки на объект Graphics при создании кода рисования для элемента управления. Аналогичным образом можно получить объект Graphics как свойство PrintPageEventArgs при обработке события PrintPage для PrintDocument.
- или -
Вызовите метод CreateGraphics элемента управления или формы, чтобы получить ссылку на Graphics, представляющий поверхность рисования объекта формы или элемента управления. Используйте этот метод, чтобы рисовать на уже существующей форме или элементе управления.
- или -
Создайте объект Graphics из любого объекта, который наследует от Image. Этот подход полезен в тех случаях, когда нужно изменить уже существующий образ.
В следующих разделах приводятся сведения о каждом из этих процессов.
PaintEventArgs в обработчике события рисования
При программировании PaintEventHandler для элементов управления или PrintPage для PrintDocument объект Graphics предоставляется как одно из свойств объекта PaintEventArgs или PrintPageEventArgs.
Для получения ссылки на объект Graphics из PaintEventArgs в событии рисования
Объявите объект Graphics.
Присвойте переменной ссылку на объект Graphics, передаваемый как часть PaintEventArgs.
Вставьте код для рисования формы или элемента управления.
В следующем примере показано, как ссылаться на объект Graphics из PaintEventArgs в событии Paint:
Private Sub Form1_Paint(sender As Object, pe As PaintEventArgs) Handles _ MyBase.Paint ' Declares the Graphics object and sets it to the Graphics object ' supplied in the PaintEventArgs. Dim g As Graphics = pe.Graphics ' Insert code to paint the form here. End Sub
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs pe) { // Declares the Graphics object and sets it to the Graphics object // supplied in the PaintEventArgs. Graphics g = pe.Graphics; // Insert code to paint the form here. }
private: void Form1_Paint(System::Object ^ sender, System::Windows::Forms::PaintEventArgs ^ pe) { // Declares the Graphics object and sets it to the Graphics object // supplied in the PaintEventArgs. Graphics ^ g = pe->Graphics; // Insert code to paint the form here. }
Метод CreateGraphics
Можно также использовать метод CreateGraphics элемента управления или формы, чтобы получить ссылку на объект Graphics, представляющий поверхность рисования формы или элемента управления.
Чтобы создать объект Graphics с помощью метода CreateGraphics
Вызовите метод CreateGraphics формы или элемента управления, на которых необходимо отрисовывать графику.
Dim g as Graphics ' Sets g to a Graphics object representing the drawing surface of the ' control or form g is a member of. g = Me.CreateGraphics
Graphics g; // Sets g to a graphics object representing the drawing surface of the // control or form g is a member of. g = this.CreateGraphics();
Graphics ^ g; // Sets g to a graphics object representing the drawing surface of the // control or form g is a member of. g = this->CreateGraphics();
Создание из объекта Image
Кроме того, можно создать объект Graphics из любого объекта, производного от класса Image.
Чтобы создать объект Graphics из изображения
Вызовите метод Graphics.FromImage, указав имя переменной типа Image, из которой требуется создать объект Graphics.
В следующем примере показано, как использовать объект Bitmap:
Dim myBitmap as New Bitmap("C:\Documents and Settings\Joe\Pics\myPic.bmp") Dim g as Graphics = Graphics.FromImage(myBitmap)
Bitmap myBitmap = new Bitmap(@"C:\Documents and Settings\Joe\Pics\myPic.bmp"); Graphics g = Graphics.FromImage(myBitmap);
Bitmap ^ myBitmap = gcnew Bitmap("D:\\Documents and Settings\\Joe\\Pics\\myPic.bmp"); Graphics ^ g = Graphics::FromImage(myBitmap);
Note
Вы можете создавать объекты Graphics только из неиндексированных BMP-файлов, например, 16, 24 и 32-разрядных BMP-файлов. Каждый пиксель неиндексированного BMP-файла содержит сведения о цвете, в отличие от пикселей индексированного BMP-файла, содержащих указатели на таблицу цветов.
Рисование и изменение фигур и изображений
После создания объект Graphics можно использовать для рисования линий и фигур, отрисовки текста, а также показа и изменения изображений. Основные объекты, которые используются с объектами Graphics:
Класс Pen, используемый для рисования линий, контуров и отрисовки других геометрических объектов.
Класс Brush, используемый для заливки графических областей, например фигур, изображений или текста.
Класс Font, содержащий описание фигур, которые должны использоваться при отрисовке текста.
Структура Color, представляющая различные цвета для отображения.
Чтобы использовать объект Graphics, который вы создали
Используйте любой из вышеперечисленных объектов для рисования того, что вам нужно.
Дополнительные сведения см. в следующих разделах: