Lektsia_6VP
.pdf4) Через объект PaintEventArgs при обработке события Paint формы или элемента управления:
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawEllipse(new Pen(Color.Red, 3), 0, 0, 200, 100);
}
11
Структура Color
Цвет может быть выбран стандартный, например:
Color.Red; // Красный цвет Color.Green; // Зелёный цвет Color.Blue; // Синий цвет
А так же, может быть создан произвольный:
Color c = Color.FromArgb(255, 0, 128);
или
Color c = Color.FromArgb(alpha, red, green, blue);
12
Перья (класс Pen)
Конструкторы:
public Pen(Color); // Цвет задан объектом класса Color public Pen(Color, float); // так же задана толщина пера public Pen(Brush); // Цвет задан объектом класса Brush public Pen(Brush, float); // так же задана толщина пера
Pen pen = Pens.Blue; // стандартное синее перо
13
Основные свойства объекта Pen
Свойство |
Описание |
|
|
|
|
Width |
Ширина линии |
|
|
|
|
Brush |
Кисть, используемая пером |
|
|
|
|
Color |
Цвет пера |
|
|
|
|
DashStyle |
Стиль пунктирных и штрих-пунктирных линий |
|
|
|
|
DashCup |
Вид точек и штрихов пунктирных и штрих-пунктирных линий |
|
|
|
|
DashOffset |
Расстояние от начала линии до начала штриха |
|
|
|
|
DashPattern |
Массив шаблонов для создания произвольных штрихов и |
|
|
пробелов штриховых и штрих-пунктирных линий |
|
|
|
|
StartCup и EndCup |
Стиль концов линий |
|
|
|
|
LineCap |
Формы концов линий |
|
|
|
|
LineJoin |
Стиль соединения концов двух различных линий |
|
|
|
|
MiterLimit |
Предельная толщина в области соединения остроконечных |
|
|
линий |
14 |
|
|
|
|
|
|
Кисти (Brush)
•Brushes; // сплошная
•SolidBrush; // сплошная
•HatchBrush; // заштрихованная
•TextureBrush; // текстурная
•LinearGradientBrush; // линейная градиентная
•PathGradientBrush
Простейший способ задания кисти:
Brush b = Brushes.Blue;
15
Шрифты (Font)
Простейший конструктор:
public Font(string, float); // имя шрифта, размер
Простейший способ задания шрифта:
Font f = new Font("Arial", 14);
16
Методы и свойства класса Graphics |
|
• Draw* |
• Fill* |
ТЕКСТ |
|
|
17 |
Линия (DrawLine)
Версии метода DrawLine:
•public void DrawLine(Pen, Point, Point);
•public void DrawLine(Pen, PointF, PointF);
•public void DrawLine(Pen, int, int, int, int);
•public void DrawLine(Pen, float, float, float, float);
Простейший способ задания линий:
Graphics g = e.Graphics;
g.DrawLine(Pens.Blue, new Point(10, 15), new Point(50, 75)); g.DrawLine(new Pen(Brushes.Black, 2), 10, 15, 50, 75);
18
Набор линий (DrawLines)
Graphics g = e.Graphics;
Pen pen = new Pen(Brushes.Blue, 5); Point[] p = new Point[3];
p[0] = new Point(0, 0); p[1] = new Point(200, 100); p[2] = new Point(50, 170); g.DrawLines(pen, p);
(Всё это пишется внутри pictureBox1_Paint !)
19
Набор линий (DrawLines)
Сглаживание:
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
20