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


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

Чтобы нарисовать линии с помощью 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:

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

Создание пера

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

Pen myPen = new Pen(Color.Blue, 2);
myGraphics.DrawLine(myPen, 0, 0, 60, 30);
Dim myPen As 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 позволяет указать, образуют ли соединенные линии фацетное (с острыми углами), скошенное, закругленное или обрезанное место соединения. На приведенном ниже рисунке показаны линии с различными стилями концов и мест соединения.

Lines

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

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

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

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

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

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

См. также