Windows forms рисование линий

Содержание
  1. Практическое руководство. Рисование линий с помощью пера How to: Use a Pen to Draw Lines
  2. Пример Example
  3. Компиляция кода Compiling the Code
  4. Рисование линий и фигур с помощью пера Using a Pen to Draw Lines and Shapes
  5. в этом разделе In This Section
  6. Справочник Reference
  7. Практическое руководство. Рисование пользовательских пунктирных линий How to: Draw a Custom Dashed Line
  8. Пример Example
  9. Компиляция кода Compiling the Code
  10. Практическое руководство. Создание графических объектов для рисования How to: Create Graphics Objects for Drawing
  11. Создание графического объекта Creating a Graphics Object
  12. Создание графического объекта To create a graphics object
  13. PaintEventArgs в обработчике событий Paint PaintEventArgs in the Paint Event Handler
  14. Получение ссылки на объект Graphics из PaintEventArgs в событии Paint To obtain a reference to a Graphics object from the PaintEventArgs in the Paint event
  15. Метод CreateGraphics CreateGraphics Method
  16. Создание графического объекта с помощью метода CreateGraphics To create a Graphics object with the CreateGraphics method
  17. Создание из объекта Image Create from an Image Object
  18. Создание графического объекта из изображения To create a Graphics object from an Image
  19. Рисование фигур и изображений и управление ими Drawing and Manipulating Shapes and Images
  20. Использование созданного объекта Graphics To use the Graphics object you have created
  21. Программируем на C#
  22. Рисование простых линий на форме или элементах управления и печать этих линий

Практическое руководство. Рисование линий с помощью пера How to: Use a Pen to Draw Lines

Для рисования линий необходим Graphics объект и Pen объект. To draw lines, you need a Graphics object and a Pen object. GraphicsОбъект предоставляет DrawLine метод, а Pen объект сохраняет функции линии, такие как цвет и ширина. The Graphics object provides the DrawLine method, and the Pen object stores features of the line, such as color and width.

Пример Example

В следующем примере рисуется строка от (20, 10) до (300, 100). The following example draws a line from (20, 10) to (300, 100). Первая инструкция использует Pen конструктор класса для создания черного пера. The first statement uses the Pen class constructor to create a black pen. Одним из аргументов, передаваемых в Pen конструктор, является Color объект, созданный с помощью FromArgb метода. The one argument passed to the Pen constructor is a Color object created with the FromArgb method. Значения, используемые для создания Color объекта — (255, 0, 0, 0) — соответствуют альфа-, красному, зеленому и синему компонентам цвета. The values used to create the Color object — (255, 0, 0, 0) — correspond to the alpha, red, green, and blue components of the color. Эти значения определяют непрозрачное черное перо. These values define an opaque black pen.

Компиляция кода Compiling the Code

Предыдущий пример предназначен для использования с Windows Forms и требует PaintEventArgs e , что является параметром Paint обработчика событий. The preceding example is designed for use with Windows Forms, and it requires PaintEventArgs e , which is a parameter of the Paint event handler.

Рисование линий и фигур с помощью пера Using a Pen to Draw Lines and Shapes

Используйте Pen объекты GDI+ для рисования линейных сегментов, кривых и контуров фигур. Use GDI+ Pen objects to draw line segments, curves, and the outlines of shapes. В этом разделе строка ссылается на любой из этих элементов, если только они не указаны только для обозначения сегмента линии. In this section, line refers to any of these, unless specified to mean only a line segment. Задайте свойства пера, чтобы управлять цветом, шириной, выравниванием и стилем линий, нарисованных с помощью этого пера. Set the properties of a pen to control the color, width, alignment, and style of lines drawn with that pen.

в этом разделе In This Section

Практическое руководство. Задание толщины и выравнивания пера How to: Set Pen Width and Alignment
Объясняет, как изменить ширину и выравнивание Pen объекта. Explains how to change the width and alignment of a Pen object.

Практическое руководство. Рисование линий с наконечниками How to: Draw a Line with Line Caps
Описывает добавление конечных клавиш при рисовании линии. Describes how to add end caps when drawing a line.

Читайте также:  Драйвера kyocera 1125 windows 10

Практическое руководство. Соединение линий How to: Join Lines
Показывает, как соединить две линии. Shows how to join two lines.

Справочник Reference

Pen
Описание класса и всех его членов. Describes this class and has links to all its members.

Практическое руководство. Рисование пользовательских пунктирных линий How to: Draw a Custom Dashed Line

Интерфейс GDI+ предоставляет несколько стилей штриха, перечисленных в DashStyle перечислении. GDI+ provides several dash styles that are listed in the DashStyle enumeration. Если эти стандартные стили штриха не соответствуют вашим потребностям, можно создать пользовательский шаблон штриха. If those standard dash styles do not suit your needs, you can create a custom dash pattern.

Пример Example

Чтобы нарисовать пользовательскую пунктирную линию, поместите длины дефисов и пробелов в массив и назначьте массив в качестве значения DashPattern свойства Pen объекта. To draw a custom dashed line, put the lengths of the dashes and spaces in an array and assign the array as the value of the DashPattern property of a Pen object. В следующем примере рисуется пользовательская пунктирная линия, основанная на массиве <5, 2, 15, 4>. The following example draws a custom dashed line based on the array <5, 2, 15, 4>. Если вы умножаете элементы массива на ширину пера в 5, вы получаете <25, 10, 75, 20>. If you multiply the elements of the array by the pen width of 5, you get <25, 10, 75, 20>. Длина отображаемых штрихов в диапазоне от 25 до 75, а длина пробелов в диапазоне от 10 до 20. The displayed dashes alternate in length between 25 and 75, and the spaces alternate in length between 10 and 20.

На следующем рисунке показана полученная пунктирная линия. The following illustration shows the resulting dashed line. Обратите внимание, что конечный дефис должен быть короче 25 единиц, чтобы строка могла заканчиваться на (405, 5). Note that the final dash has to be shorter than 25 units so that the line can end at (405, 5).

Компиляция кода Compiling the Code

Создайте форму Windows Forms и обработайте Paint событие формы. Create a Windows Form and handle the form’s Paint event. Вставьте предыдущий код в Paint обработчик событий. Paste the preceding code into the Paint event handler.

Практическое руководство. Создание графических объектов для рисования 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:

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

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

Создание графического объекта Creating a Graphics Object

Графический объект может быть создан различными способами. A graphics object can be created in a variety of ways.

Создание графического объекта To create a graphics object

Получение ссылки на графический объект в составе PaintEventArgs Paint события формы или элемента управления. Receive a reference to a graphics object as part of the PaintEventArgs in the Paint event of a form or control. Обычно это способ получения ссылки на графический объект при создании кода рисования для элемента управления. 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.

Вызовите 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.

Читайте также:  Hasp license manager linux ubuntu

Создайте 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 в обработчике событий Paint 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 в событии Paint To obtain a reference to a Graphics object from the PaintEventArgs in the Paint event

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

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

Вставка кода для заполнения формы или элемента управления. 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:

Метод CreateGraphics CreateGraphics 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.

Создание графического объекта с помощью метода CreateGraphics To 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.

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

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

Создание графического объекта из изображения To create a Graphics object from an Image

Вызовите Graphics.FromImage метод, указав имя переменной изображения, из которой нужно создать 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:

Создавать объекты можно только 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. Объекты Principal, используемые с Graphics объектом: The principal objects that are used with the Graphics object are:

Читайте также:  Linux command line loop

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

Для рисования нужного объекта выполните действия с соответствующим объектом, приведенным выше. Work with the appropriate object listed above to draw what you need.

Дополнительные сведения см. в следующих разделах: For more information, see the following topics:

Программируем на C#

Блог содержит статьи, исходные тексты программ на C#. Здесь можно скачать исходник нужной программы.

Рисование простых линий на форме или элементах управления и печать этих линий

Листинг 5.1. Код для рисования прямой линии.

private void Form1_Paint(object sender, PaintEventArgs e)

//Задаем цвет и толщину пера:

Pen myPen = new Pen(Color.Black, 3);

e.Graphics.DrawLine(myPen, 10, 15, 100, 120);

//Высвобождаем память, выделенную объекту myPen:

Листинг 5.2. Код для рисования кривых линий.

private void Form1_Paint(object sender, PaintEventArgs e)

//Задаем цвет и толщину пера:

Pen myPen = new Pen(Color.Black, 3);

//Рисуем эллипс лица:

e.Graphics.DrawEllipse(myPen, 0, 0, 200, 220);

//Рисуем закрытый глаз как дугу:

e.Graphics.DrawArc(myPen, 35, 35, 35, 35, 180, -180);

//Рисуем открытый глаз как эллипс:

e.Graphics.DrawEllipse(myPen, 120, 35, 35, 35);

//Рисуем нос как линию (сплайн) Безье:

e.Graphics.DrawBezier(myPen, 100, 60, 120, 100,

//Рисуем рот как канонический сплайн:

Point[] apt = new Point[4];

apt[0] = new Point(60, 140);

apt[1] = new Point(140, 140);

apt[2] = new Point(100, 180);

apt[3] = new Point(60, 140);

e.Graphics.DrawCurve(myPen, apt, 0, 3, 0.9f);

//Высвобождаем память, выделенную объекту myPen:

Листинг 5.3. Код на Visual C# для печати изображения на принтере.

private void button1_Click(object sender, EventArgs e)

//Передаем объекту printDialog1 информацию об объекте

//printDocument1 при помощи свойства Document:

//Выводим стандартную панель Print при помощи метода

//ShowDialog() для задания параметров печати

//и после щелчка OK на панели Print печатаем документ

//при помощи метода Print():

if (printDialog1.ShowDialog() == DialogResult.OK)

Листинг 5.4. Код на Visual Basic для печати изображения на принтере.

Private Sub Button3_Click(ByVal sender As System.Object, _

ByVal e As EventArgs) Handles Button3.Click

‘Передаем объекту PrintDialog1 информацию об объекте

‘PrintDocument1 при помощи свойства Document:

‘Выводим панель Print при помощи функции ShowDialog

‘для задания параметров и вызываем процедуру Print():

If PrintDialog1.ShowDialog() = DialogResult.OK Then

Листинг 5.5. Код на прежнем Visual C++ (2002-2004 годов) для печати.

System::Void button3_Click(System::Object * sender,

//Передаем объекту printDialog1 информацию об объекте

//printDocument1 при помощи свойства Document:

//Выводим стандартную панель Print при помощи метода

//ShowDialog() для задания параметров печати

//и печатаем документ после щелчка OK на панели Print

//при помощи метода Print():

if (printDialog1->ShowDialog() == DialogResult::OK)

Листинг 5.6. Код на новом Visual C++ 2005 для печати изображения.

System::Void button3_Click(System::Object^ sender,

//Передаем объекту printDialog1 информацию об объекте

//printDocument1 при помощи свойства Document:

//Выводим стандартную панель Print при помощи метода

//ShowDialog() для задания параметров печати

//и печатаем документ при помощи метода Print():

Если мы не желаем видеть перед печатью стандартную панель Print, то компонент PrintDialog нам не потребуется, а в шаблон обработчика щелчка по кнопке вместо кода на листинге 5.3 записываем только одну строку кода:

Проверяем в действии созданную нами программу для печати на принтере любых изображений. Для этого получаем на экране монитора (по описанной выше методике) заданное изображение и щелкаем кнопку Print.

Появляется стандартная панель Print (рис. 5.5), на которой мы выбираем (или оставляем по умолчанию) принтер и задаем параметры печати. Например, можно изменить ориентацию печати и вместо Portrait (Портрет) выбрать переключатель Landscape (Ландшафт). После щелчка кнопки Печать (Print) или OK принтер печатает только одно изображение без формы и элементов управления.

Оцените статью