Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Graphics.doc
Скачиваний:
20
Добавлен:
16.11.2019
Размер:
3.1 Mб
Скачать

Использование управляемых графических классов Приступая к программированию графики

В данном разделе описывается, как начать использовать интерфейс GDI+ в приложении Windows Forms. В следующих разделах приведены инструкции по решению некоторых задач GDI+, таких как рисование и заливка фигур и текста.

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

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

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

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

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

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

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

-или-

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

-или-

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

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

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

При создании обработчика события PaintEventHandler для элементов управления объект Graphics является одним из компонентов объекта PaintEventArgs.

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

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

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

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

The following example shows how to reference a Graphics object from the PaintEventArgs in the Paint event:

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.

}

CreateGraphics Method

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.

To create a Graphics object with the CreateGraphics method

  • Call the CreateGraphics method of the form or control upon which you want to render graphics.

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

Create from an Image Object

Additionally, you can create a graphics object from any object that derives from the Image class.

To create a Graphics object from an Image

  • Call the Graphics..::.FromImage method, supplying the name of the Image variable from which you want to create a Graphics object.

The following example shows how to use a Bitmap object:

Bitmap myBitmap = new Bitmap(@"C:\Documents and

Settings\Joe\Pics\myPic.bmp");

Graphics g = Graphics.FromImage(myBitmap);

Note:

You can only create Graphics objects from nonindexed .bmp files, such as 16-bit, 24-bit, and 32-bit .bmp files. 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.

В следующем примере показано, как создавать ссылку на объект Graphics из объекта PaintEventArgs события Paint.

---

Метод CreateGraphics

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

Создание объекта Graphics с помощью метода CreateGraphics

  • Вызовите метод CreateGraphics формы или элемента управления, на котором необходимо отобразить графику.

--------

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

Объект Graphics можно создать из любого объекта, производного от класса Image.

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

  • Вызовите метод Graphics..::.FromImage переменной Image, из которой нужно создать объект Graphics.

В следующем примере показывается, как использовать объект Bitmap.

--------

Примечание.

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

Drawing and Manipulating Shapes and Images

After it is created, a Graphics object may be used to draw lines and shapes, render text, or display and manipulate images. The principal objects that are used with the Graphics object are:

  • The Pen class—Used for drawing lines, outlining shapes, or rendering other geometric representations.

  • The Brush class—Used for filling areas of graphics, such as filled shapes, images, or text.

  • The Font class—Provides a description of what shapes to use when rendering text.

  • The Color structure—Represents the different colors to display.

To use the Graphics object you have created

  • Work with the appropriate object listed above to draw what you need.

How to: Create a Pen

This example creates a Pen object.

Example

System.Drawing.Pen myPen;

myPen = new System.Drawing.Pen(System.Drawing.Color.Tomato);

Robust Programming

After you have finished using objects that consume system resources, such as Pen objects, you should call Dispose on them.