Show / Hide Table of Contents

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

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

Работа с графикой состоит из двух этапов:

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

  2. Использование объекта 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 в событии рисования

  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

Можно также использовать метод 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, который вы создали

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

    Дополнительные сведения см. в следующих разделах:

    Для отрисовки См.
    Прямых линий Практическое руководство. Рисований линий в Windows Forms
    Фигур Практическое руководство. Рисование линии или контурной фигуры
    Текста Практическое руководство. Отрисовка текста в Windows Forms
    Изображений Практическое руководство. Отрисовка изображений с использованием GDI+

См. также

  • Приступая к программированию графики
  • Объекты Graphics и Drawing в Windows Forms
  • Прямые и кривые линии и фигуры
  • Практическое руководство. Отрисовка изображений с использованием GDI+
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX