netlib.narod.ru | < Назад | Оглавление | Далее > |
Для рисования одиночных прямых служит метод DrawLine класса Graphics. Есть четыре перегруженных версии DrawLine, но все они требуют один и тот же набор аргументов: координаты начальной и конечной точек линии, а также перо, которым она рисуется:
Методы DrawLine класса Graphics
void DrawLine(Pen pen, int x1, int y1, int x2, int y2) |
void DrawLine(Pen pen, float x1, float y1, float x2, float y2) |
void DrawLine(Pen pen, Point point1, Point point2) |
void DrawLine(Pen pen, PointF point1, PointF point2) |
Можно указывать координаты как четырьмя значениями типа int или float, так и парой структур Point или PointF.
Метод DrawLine чертит линию от первой точки до второй, включая вторую точку в состав линии (этим он несколько отличается от Win32 GDI, который проводит линию между двумя точками, не включая конечную точку в состав линии). Вот пример:
grfx.DrawLine(pen, 0, 0, 5, 5);
Эта команда закрашивает черным цветом 6 пикселов с координатами (0, 0), (1, 1), (2, 2), (3, 3), (4, 4) и (5, 5). Порядок указания начальной и конечной точек линии не имеет значения, поэтому вызов:
grfx.DrawLine(pen, 5, 5, 0, 0);
даст тот же результат. Вызов:
grfx.DrawLine(pen, 2, 2, 3, 3);
рисует 2 пиксела с координатами (2, 2) и (3, 3). Однако вызов:
grfx.DrawLine(pen, 3, 3, 3, 3);
не рисует ничего.
Как вам известно, определить ширину и высоту клиентской области позволяет свойство ClientSize формы. Число пикселов по горизонтали определяется значением ClientSize.Width; пикселы могут нумероваться от 0 до ClientSize.Width - 1. Аналогично пикселы клиентской области по вертикали нумеруются от 0 до ClientSize.Height - 1.
Программа XMarksTheSpot рисует крестик в клиентской области.
XMarksTheSpot.cs
//----------------------------------------------- // XMarksTheSpot.cs (C) 2001 by Charles Petzold //----------------------------------------------- using System; using System.Drawing; using System.Windows.Forms; class XMarksTheSpot: Form { public static void Main() { Application.Run(new XMarksTheSpot()); } public XMarksTheSpot() { Text = "X Marks The Spot"; BackColor = SystemColors.Window; ForeColor = SystemColors.WindowText; ResizeRedraw = true; } protected override void OnPaint(PaintEventArgs pea) { Graphics grfx = pea.Graphics; Pen pen = new Pen(ForeColor); grfx.DrawLine(pen, 0, 0, ClientSize.Width - 1, ClientSize.Height - 1); grfx.DrawLine(pen, 0, ClientSize.Height - 1, ClientSize.Width - 1, 0); } }
Первый вызов DrawLine рисует линию от верхнего левого до нижнего правого пиксела клиентской области. Второй вызов DrawLine ведет линию из нижнего левого пиксела с координатами (0, ClientSize.Height – 1) и доводит ее до верхнего правого пиксела с координатами (ClientSize.Width – 1, 0).
netlib.narod.ru | < Назад | Оглавление | Далее > |