как сделать линию в windows forms

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

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

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

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

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

Пунктирные линии и концы строк

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

как сделать линию в windows forms

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

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

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

Источник

Pen Класс

Определение

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Определяет объект, используемый для рисования прямых линий и кривых. Этот класс не наследуется.

Примеры

Комментарии

PenРисует линию указанной ширины и стиля. Используйте DashStyle свойство, чтобы нарисовать несколько штрихов пунктирных линий. Линия, нарисованная, Pen может быть заполнена различными стилями заливки, включая сплошные цвета и текстуры. Стиль заливки зависит от кисти или текстуры, используемой в качестве объекта заливки.

Конструкторы

Инициализирует новый экземпляр класса Pen указанным значением Brush.

Инициализирует новый экземпляр класса Pen с заданными свойствами Brush и Width.

Инициализирует новый экземпляр класса Pen указанным цветом.

Инициализирует новый экземпляр класса Pen указанными свойствами Color и Width.

Свойства

Возвращает или задает выравнивание для объекта Pen.

Возвращает или задает объект Brush, определяющий атрибуты объекта Pen.

Возвращает или задает цвет объекта Pen.

Возвращает или задает массив значений, определяющий составное перо. Составное перо рисует составную линию, состоящую из параллельных линий и промежутков.

Возвращает или задает настраиваемое завершение для использования в конце линий, нарисованных при помощи пера Pen.

Возвращает или задает настраиваемое завершение, используемое в начале линий, нарисованных при помощи пера Pen.

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

Возвращает или задает расстояние от начала линии до начала шаблона штриха.

Возвращает или задает массив настраиваемых штрихов и промежутков.

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

Возвращает или задает стиль завершения линий, нарисованных при помощи объекта Pen.

Возвращает или задает объединенный стиль завершений для двух последовательных линий, нарисованных при помощи объекта Pen.

Возвращает или задает ограничение толщины соединения скошенных углов.

Возвращает или задает стиль линий, нарисованных с помощью объекта Pen.

Возвращает или задает стиль завершения, используемый в начале линий, рисуемых при помощи объекта Pen.

Возвращает или задает копию геометрического преобразования объекта Pen.

Возвращает или устанавливает ширину пера Pen, в единицах измерения объекта Graphics, используемого для рисования.

Методы

Создает точную копию данного объекта Pen.

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

Освобождает все ресурсы, используемые этим объектом Pen.

Определяет, равен ли указанный объект текущему объекту.

Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как он будет уничтожен во время сборки мусора.

Служит хэш-функцией по умолчанию.

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

Возвращает объект Type для текущего экземпляра.

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

Создает неполную копию текущего объекта Object.

Создает неполную копию текущего объекта MarshalByRefObject.

Умножает матрицу преобразования объекта Pen на заданный объект Matrix.

Умножает матрицу преобразования объекта Pen на заданный объект Matrix в заданном порядке.

Возвращает матрице геометрического преобразования объекта Pen единичное значение.

Поворачивает локальное геометрическое преобразование на заданный угол. Этот метод добавляет поворот перед преобразованием.

Поворачивает локальное геометрическое преобразование на заданный угол в заданном порядке.

Выполняет изменение масштаба локального геометрического преобразования при помощи заданных коэффициентов. Этот метод вставляет изменение масштаба перед преобразованием.

Изменяет масштаб локального геометрического преобразования при помощи заданных коэффициентов в заданном порядке.

Устанавливает значения, определяющие стиль завершения, используемый в конце линий, нарисованных при помощи объекта Pen.

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

Выполняет перевод локального геометрического преобразования на заданные размеры. Этот метод вставляет перевод перед преобразованием.

Выполняет перевод локального геометрического преобразования на заданные размеры в заданном порядке.

Источник

Программируем на 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.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 принтер печатает только одно изображение без формы и элементов управления.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *