Практическое руководство. Создание графических объектов для рисованияHow to: Create Graphics Objects for Drawing

Прежде чем рисовать линии и фигуры, отображать текст или отображать изображения и управлять ими с помощью GDI+, необходимо создать Graphics объект.Before you can draw lines and shapes, render text, or display and manipulate images with GDI+, you need to create a Graphics object. Graphics Объект представляет поверхность рисования GDI+, а — объект, используемый для создания графических изображений.The Graphics object represents a GDI+ drawing surface, and is the object that is used to create graphical images.

Работа с графикой состоит из двух этапов:There are two steps in working with graphics:

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

  2. Использование объекта Graphics для рисования линий и фигур, отображения текста или изображений и управления ими.Using the Graphics object to draw lines and shapes, render text, or display and manipulate images.

Создание объектов GraphicsCreating a Graphics Object

Объекты Graphics могут создаваться различными способами.A graphics object can be created in a variety of ways.

Чтобы создать объект GraphicsTo create a graphics object

  • Получите ссылку на объект Graphics как часть PaintEventArgs в событии Paint формы или элемента управления.Receive a reference to a graphics object as part of the PaintEventArgs in the Paint event of a form or control. Это обычный способ получения ссылки на объект Graphics при создании кода рисования для элемента управления.This is usually how you obtain a reference to a graphics object when creating painting code for a control. Аналогичным образом можно получить объект Graphics как свойство PrintPageEventArgs при обработке события PrintPage для PrintDocument.Similarly, you can also obtain a graphics object as a property of the PrintPageEventArgs when handling the PrintPage event for a PrintDocument.

    - или --or-

  • Вызовите метод CreateGraphics элемента управления или формы, чтобы получить ссылку на Graphics, представляющий поверхность рисования объекта формы или элемента управления.Call the CreateGraphics method of a control or form to obtain a reference to a Graphics object that represents the drawing surface of that control or form. Используйте этот метод, чтобы рисовать на уже существующей форме или элементе управления.Use this method if you want to draw on a form or control that already exists.

    - или --or-

  • Создайте объект Graphics из любого объекта, который наследует от Image.Create a Graphics object from any object that inherits from Image. Этот подход удобен, если требуется изменить уже существующий образ.This approach is useful when you want to alter an already existing image.

    В следующих разделах приводятся сведения о каждом из этих процессов.The following sections give details about each of these processes.

PaintEventArgs в обработчике события рисованияPaintEventArgs in the Paint Event Handler

При программировании PaintEventHandler для элементов управления или PrintPage для PrintDocument объект Graphics предоставляется как одно из свойств объекта PaintEventArgs или PrintPageEventArgs.When programming the PaintEventHandler for controls or the PrintPage for a PrintDocument, a graphics object is provided as one of the properties of PaintEventArgs or PrintPageEventArgs.

Для получения ссылки на объект Graphics из PaintEventArgs в событии рисованияTo obtain a reference to a Graphics object from the PaintEventArgs in the Paint event

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

  2. Присвойте переменной ссылку на объект Graphics, передаваемый как часть PaintEventArgs.Assign the variable to refer to the Graphics object passed as part of the PaintEventArgs.

  3. Вставка кода для заполнения формы или элемента управления.Insert code to paint the form or control.

    В следующем примере показано, как ссылаться на объект Graphics из PaintEventArgs в событии Paint:The following example shows how to reference a Graphics object from the PaintEventArgs in the Paint event:

    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.  
       }  
    

Метод CreateGraphicsCreateGraphics Method

Можно также использовать метод CreateGraphics элемента управления или формы, чтобы получить ссылку на объект Graphics, представляющий поверхность рисования формы или элемента управления.You can also use the CreateGraphics method of a control or form to obtain a reference to a Graphics object that represents the drawing surface of that control or form.

Чтобы создать объект Graphics с помощью метода CreateGraphicsTo create a Graphics object with the CreateGraphics method

  • Вызовите метод CreateGraphics формы или элемента управления, на которых необходимо отрисовывать графику.Call the CreateGraphics method of the form or control upon which you want to render graphics.

    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();  
    

Создание из объекта ImageCreate from an Image Object

Кроме того, можно создать объект Graphics из любого объекта, производного от класса Image.Additionally, you can create a graphics object from any object that derives from the Image class.

Чтобы создать объект Graphics из изображенияTo create a Graphics object from an Image

  • Вызовите метод Graphics.FromImage, указав имя переменной типа Image, из которой требуется создать объект Graphics.Call the Graphics.FromImage method, supplying the name of the Image variable from which you want to create a Graphics object.

    В следующем примере показано, как использовать объект Bitmap:The following example shows how to use a Bitmap object:

    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-файлов.You can only create Graphics objects from nonindexed .bmp files, such as 16-bit, 24-bit, and 32-bit .bmp files. Каждый пиксель неиндексированного BMP-файла содержит сведения о цвете, в отличие от пикселей индексированного BMP-файла, содержащих указатели на таблицу цветов.Each pixel of nonindexed .bmp files holds a color, in contrast to pixels of indexed .bmp files, which hold an index to a color table.

Рисование и изменение фигур и изображенийDrawing and Manipulating Shapes and Images

После создания объект Graphics можно использовать для рисования линий и фигур, отрисовки текста, а также показа и изменения изображений.After it is created, a Graphics object may be used to draw lines and shapes, render text, or display and manipulate images. Основные объекты, которые используются с объектами Graphics:The principal objects that are used with the Graphics object are:

  • Класс Pen, используемый для рисования линий, контуров и отрисовки других геометрических объектов.The Pen class—Used for drawing lines, outlining shapes, or rendering other geometric representations.

  • Класс Brush, используемый для заливки графических областей, например фигур, изображений или текста.The Brush class—Used for filling areas of graphics, such as filled shapes, images, or text.

  • Класс Font, содержащий описание фигур, которые должны использоваться при отрисовке текста.The Font class—Provides a description of what shapes to use when rendering text.

  • Структура Color, представляющая различные цвета для отображения.The Color structure—Represents the different colors to display.

Чтобы использовать объект Graphics, который вы создалиTo use the Graphics object you have created

См. такжеSee also