Поделиться через


Практическое руководство. Создание объектов Graphics для рисования

Перед тем как рисовать линии и фигуры, отображать текст, выводить изображения и управлять ими в GDI+ необходимо создать объект Graphics. Объект Graphics представляет поверхность рисования GDI+ и используется для создания графических изображений.

Ниже представлены два этапа работы с графикой.

  1. Создание объекта Graphics.

  2. Использование объекта Graphics для рисования линий и фигур, отображения текста или изображения и управления ими.

Создание объекта Graphics

Существуют различные способы создания графических объектов.

Создание объекта Graphics

  • Получите ссылку на объект Graphics через объект PaintEventArgs при обработке события Paint формы или элемента управления. Это обычный способ получения ссылки на графический объект при создании кода рисования элементов управления. Подобным образом можно получить графический объект как свойство объекта PrintPageEventArgs при обработке события PrintPage для PrintDocument.

    – или –

  • Вызовите метод CreateGraphics элемента управления или формы, чтобы получить ссылку на объект Graphics, соответствующий поверхности рисования этой формы или элемента управления. Используйте этот подход, если необходимо рисовать на поверхности уже существующей формы или элемента управления.

    – или –

  • Создайте объект Graphics из любого объекта, унаследованного от класса Image. Этот способ используется, когда требуется изменить существующее изображение.

    Ниже все эти процедуры описаны более подробно.

PaintEventArgs в обработчике события Paint

При создании обработчика события PaintEventHandler для элементов управления или объекта PrintPage для PrintDocument, графический объект предоставляется как одно из свойств объекта PaintEventArgs или PrintPageEventArgs.

Получение ссылки на объект Graphics из объекта PaintEventArgs в событии Paint

  1. Объявите объект Graphics.

  2. Присвойте переменной ссылку на объект Graphics, передаваемый как часть PaintEventArgs.

  3. Вставьте код для рисования формы или элемента управления.

    В следующем примере показано, как создавать ссылку на объект 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

Для получения ссылки на объект Graphics, который соответствует поверхности рисования формы или элемента управления, можно также использовать метод CreateGraphics этой формы или элемента управления.

Создание объекта 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 из объекта Image

  • Вызовите метод 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);
    

Примечание

Создание объектов Graphics возможно только из неиндексированных BMP-файлов, таких как 16-разрядные, 24-разрядные и 32-разрядные BMP-файлы.Каждая точка неиндексированного BMP-файла содержит сведения о цвете, в отличие от точек индексированного BMP-файла, которые содержат указатели на таблицу цветов.

Рисование фигур и изображений и управление ими

После создания объекта Graphics его можно использовать для рисования линий и фигур, отображения текста или изображения и управления ими. Ниже представлены основные объекты, используемые с объектом Graphics.

  • Класс Pen — служит для рисования линий, контуров и отрисовки других геометрических объектов.

  • Класс Brush — служит для заливки областей, например фигур, изображений или текста.

  • Класс Font — содержит описание фигур, которые должны использоваться при отображении текста.

  • Структура Color — содержит различные цвета.

Использование созданного объекта Graphics

См. также

Задачи

Практическое руководство. Вывод изображений с использованием GDI+

Другие ресурсы

Приступая к программированию графики

Объекты Graphics и Drawing в Windows Forms

Прямые и кривые линии и фигуры