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


Перья, линии и прямоугольники в GDI+

Обновлен: Ноябрь 2007

Чтобы нарисовать линию с помощью интерфейса GDI+, нужно создать два объекта: объект Graphics и объект Pen. Объект Graphics содержит методы, непосредственно выполняющие рисование, а объект Pen служит хранилищем атрибутов, таких как цвет, ширина и стиль линии.

Рисование линии

Чтобы нарисовать линию, вызовите метод DrawLine объекта Graphics. Объект Pen передается методу DrawLine в качестве одного из аргументов. В приведенном ниже примере демонстрируется рисование отрезка, соединяющего точки с координатами (4, 2) и (12, 6).

myGraphics.DrawLine(myPen, 4, 2, 12, 6)

myGraphics.DrawLine(myPen, 4, 2, 12, 6);

Метод DrawLine класса Graphics перегружен, поэтому для него поддерживается несколько способов передачи аргументов. Например, можно создать два объекта Point и передать эти объекты Point методу DrawLine в качестве аргументов.

Dim myStartPoint As New Point(4, 2)
Dim myEndPoint As New Point(12, 6)
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint)

Point myStartPoint = new Point(4, 2);
Point myEndPoint = new Point(12, 6);
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint);

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

При создании объекта Pen можно указать несколько атрибутов. Например, один из конструкторов Pen позволяет указывать при создании объекта его цвет и ширину. В приведенном ниже примере демонстрируется рисование синего отрезка толщиной 2 из точки с координатами (0, 0) в точку с координатами (60, 30).

Dim myPen As New Pen(Color.Blue, 2)
myGraphics.DrawLine(myPen, 0, 0, 60, 30)

Pen myPen = new Pen(Color.Blue, 2);
myGraphics.DrawLine(myPen, 0, 0, 60, 30);

Штриховые линии и завершения отрезков

Объект Pen также разрешает изменять значения некоторых своих свойств, таких как DashStyle, что позволяет задавать характеристики линии. В приведенном ниже примере демонстрируется рисование отрезка штриховой линии из точки с координатами (100, 50) в точку с координатами (300, 80).

myPen.DashStyle = DashStyle.Dash
myGraphics.DrawLine(myPen, 100, 50, 300, 80)

myPen.DashStyle = DashStyle.Dash;
myGraphics.DrawLine(myPen, 100, 50, 300, 80);

Изменяя значения свойств объекта Pen, можно задать многие атрибуты линии. Свойства StartCap и EndCap определяют вид конечных точек отрезка. Конец отрезка может быть плоским, квадратным, круглым, треугольным или иметь произвольную форму. Свойство LineJoin позволяет указывать, должны ли соединяемые линии соединяться под углом (с выступающими острыми углами), со скошенными, закругленными или обрезанными краями. На приведенном ниже примере демонстрируются различные стили завершения и соединения линий.

Прямые линии

Рисование прямоугольника

Рисование прямоугольников в GDI+ похоже на рисование линий. Чтобы нарисовать прямоугольник, нужно создать два объекта: объект Graphics и объект Pen. У объекта Graphics имеется метод DrawRectangle, а объект Pen предназначен для хранения таких атрибутов рисуемого элемента, как ширина линии и цвет. Объект Pen передается методу DrawRectangle в качестве одного из аргументов. В приведенном ниже примере демонстрируется рисование прямоугольника шириной 80 и высотой 40 точек, верхний левый угол которого расположен в точке с координатами (100, 50).

myGraphics.DrawRectangle(myPen, 100, 50, 80, 40)

myGraphics.DrawRectangle(myPen, 100, 50, 80, 40);

Метод DrawRectangle класса Graphics перегружен, поэтому для него поддерживается несколько способов передачи аргументов. Например, можно создать объект Rectangle и передать этот объект Rectangle в качестве аргумента методу DrawRectangle:

Dim myRectangle As New Rectangle(100, 50, 80, 40)
myGraphics.DrawRectangle(myPen, myRectangle)

Rectangle myRectangle = new Rectangle(100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, myRectangle);

Объект Rectangle содержит методы и свойства, позволяющие задавать и извлекать данные о прямоугольнике. Например, методы Inflate и Offset позволяют изменять размер и расположение прямоугольника. Метод IntersectsWith позволяет определить, не пересекается ли данный прямоугольник с некоторым указанным прямоугольником, а метод Contains позволяет определить, находится ли указанная точка внутри данного прямоугольника.

См. также

Задачи

Практическое руководство. Создание пера

Практическое руководство. Рисование линии в Windows Forms

Практическое руководство. Рисование линии или контурной фигуры

Ссылки

System.Drawing.Graphics

System.Drawing.Pen

System.Drawing.Rectangle