Концы линий
Концы линий
Если рассмотреть вывод предыдущего примера, вы должны заметить, что начало и конец каждой линии там оформлен вполне стандартно – линия "срезается" под углом 90° к ее направлению. Но, используя перечень LineCap, вы имеете возможность создавать объекты Pen, демонстрирующие иное поведение.
public enum LineCap {
Flat, Square, Round,
Triangle, NoAnchor,
SquareAnchor, RoundAnchor,
DiamondAnchor, ArrowAnchor,
AnchorMask, Custom
}
Следующее приложение отображает набор линий, по очереди используя каждый из стилей LineCap. Конечный результат показан на рис. 20.13.

Рис. 20.13. Работа с концами линий
В соответствующем программном коде просто используется цикл по всем членам перечня LineCap с выводам имени соответствующего элемента (например, ArrowAnchor) и отображением линии с соответствующим оформлением ее концов.
private void MainForm_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
Pen thePen = new Pen(Color.Black, 10);
int yOffSet = 10;
// Получение всех членов перечня LineCap.
Array obj = Enum.GetValues(typeof(LineCap));
// Рисование линии для данного члена LineCap.
for (int х = 0; х ‹ obj. Length; x++) {
// Получение следующего стиля конца линии и настройка пера.
LineCap temp = (LineCap)obj.GetValue(x);
thePen.StartCap = temp;
thePen.EndCap = temp;
// Вывод имени из перечня LineCap.
g.Drawstring(temp.ToString(), new Font("Times New Roman", 10), new SolidBrush(Color.Black), 0, yOffSet);
// Рисование линии с соответствующим стилем концов.
g.DrawLine(thePen, 100, yOffSet, Width – 50, yOffSet);
yOffSet += 40;
}
}
Исходный код. Проект PenCapApp размещен в подкаталоге, соответствующем главе 20.
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ