Перья, линии и прямоугольники в GDI+Pens, Lines, and Rectangles in GDI+

Чтобы нарисовать линии с GDI+GDI+ необходимо создать Graphics объекта и Pen объекта.To draw lines with GDI+GDI+ you need to create a Graphics object and a Pen object. Graphics Объект предоставляет методы, которые фактически выполняют рисование, и Pen объект сохраняет атрибуты, такие как цвет, ширину и стиль.The Graphics object provides the methods that actually do the drawing, and the Pen object stores attributes, such as line color, width, and style.

Рисование линииDrawing a Line

Чтобы нарисовать линию, вызовите DrawLine метод Graphics объекта.To draw a line, call the DrawLine method of the Graphics object. Pen Объект передается в качестве одного из аргументов DrawLine метод.The Pen object is passed as one of the arguments to the DrawLine method. В следующем примере рисуется линию из точки (4, 2) в точку ("12", "6"):The following example draws a line from the point (4, 2) to the point (12, 6):

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

DrawLine — перегруженный метод Graphics класса, поэтому существует несколько способов передачи аргументов.DrawLine is an overloaded method of the Graphics class, so there are several ways you can supply it with arguments. Например, можно создать два Point и передать Point объектов в качестве аргументов DrawLine метод:For example, you can construct two Point objects and pass the Point objects as arguments to the DrawLine method:

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)

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

Можно указать несколько атрибутов, при создании Pen объекта.You can specify certain attributes when you construct a Pen object. Например, один Pen конструктор позволяет указать цвет и ширину.For example, one Pen constructor allows you to specify color and width. В следующем примере рисуется синяя линия от ширины 2 от (0, 0) для (60, 30):The following example draws a blue line of width 2 from (0, 0) to (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)

Пунктирные линии и завершения отрезковDashed Lines and Line Caps

Pen Объект также предоставляет свойства, такие как DashStyle, можно использовать для указания свойства линии.The Pen object also exposes properties, such as DashStyle, that you can use to specify features of the line. В следующем примере рисуется пунктирная линия с (100, 50) к (300, 80):The following example draws a dashed line from (100, 50) to (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 объекта можно задать многие атрибуты линии.You can use the properties of the Pen object to set many more attributes of the line. StartCap И EndCap свойства определяют внешний вид концах линии; может заканчиваться неструктурированный square, треугольником, или пользовательской фигуры.The StartCap and EndCap properties specify the appearance of the ends of the line; the ends can be flat, square, rounded, triangular, or a custom shape. LineJoin Свойство позволяет указать ли соединенных линий углом (присоединение с острые углы), скошенные, округленное или обрезается.The LineJoin property lets you specify whether connected lines are mitered (joined with sharp corners), beveled, rounded, or clipped. Ниже показаны строки с использованием различных стилей завершения и соединения.The following illustration shows lines with various cap and join styles.

СтрокиLines

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

Рисование прямоугольников с GDI+GDI+ похоже на рисование линий.Drawing rectangles with GDI+GDI+ is similar to drawing lines. Чтобы нарисовать прямоугольник, вам потребуется Graphics объекта и Pen объекта.To draw a rectangle, you need a Graphics object and a Pen object. Graphics Предоставляет DrawRectangle метод и Pen объект сохраняет атрибуты, такие как толщины и цвета.The Graphics object provides a DrawRectangle method, and the Pen object stores attributes, such as line width and color. Pen Объект передается в качестве одного из аргументов DrawRectangle метод.The Pen object is passed as one of the arguments to the DrawRectangle method. В следующем примере рисуется прямоугольник с его верхнего левого угла в (100, 50), ширины 80, а высота — 40:The following example draws a rectangle with its upper-left corner at (100, 50), a width of 80, and a height of 40:

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

DrawRectangle — перегруженный метод Graphics класса, поэтому существует несколько способов передачи аргументов.DrawRectangle is an overloaded method of the Graphics class, so there are several ways you can supply it with arguments. Например, можно создать Rectangle и передать Rectangle объект DrawRectangle метод в качестве аргумента:For example, you can construct a Rectangle object and pass the Rectangle object to the DrawRectangle method as an argument:

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 содержит методы и свойства для обработки и сбора сведений о прямоугольника.A Rectangle object has methods and properties for manipulating and gathering information about the rectangle. Например Inflate и Offset методы изменять размер и положение прямоугольника.For example, the Inflate and Offset methods change the size and position of the rectangle. IntersectsWith Метод указывает, является ли прямоугольник пересекается с другим указанным прямоугольником и Contains метод указывает, является ли заданная точка находится внутри прямоугольника.The IntersectsWith method tells you whether the rectangle intersects another given rectangle, and the Contains method tells you whether a given point is inside the rectangle.

См. такжеSee also