Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Концы линий

Концы линий

Если рассмотреть вывод предыдущего примера, вы должны заметить, что начало и конец каждой линии там оформлен вполне стандартно – линия "срезается" под углом 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.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.369. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз