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

Работа с HatchBrush

Работа с HatchBrush

В пространстве имен System.Drawing.Drawing2D определен производный от Brush тип с именем HatchBrush. Этот тип позволяет закрасить регион, используя один из (очень большого) набора встроенных видов узоров, представленных перечнем HatchStyle. Вот часть соответствующего списка имен.

public enum HatchStyle {
 Horizontal, Vertical, ForwardDiagonal,
 BackwardDiagonal, Cross, DiagonalCross,
 LightUpwardDiagonal, DarkDownwardDiagonal,
 DarkUpwardDiagonal, LightVertical,
 NarrowHorizontal, DashedDownwardDiagonal,
 SmallConfetti, LargeConfetti, ZigZag,
 Wave, DiagonalВrick, Divot, DottedGrid, Sphere,
 OutlinedDiamond, SolidDiamond,
 …
}

При конструировании HatchBrush вы должны указать цвет для переднего плана и цвет для фона, которые будут использоваться при выполнении операции закрашивания. Для примера давайте немного подкорректируем программную логику из приведенного выше примера PenCapApp.

private void MainForm_Paint(object sender, PaintEventArgs e) {
 Graphics g = e.Graphics;
 int yOffSet = 10;
 // Получение всех членов перечня HatchStyle.
 Array obj = Enum.GetValues(typeof(HatchStyle));
 // Отображение овалов для первых 5 значений из HatchStyle.
 for (int x = 0; x ‹ 5; x++) {
  // Конфигурация кисти.
  HatchStyle temp = (HatchStyle)obj.GetValue(x);
  HatchBrush theBrush = new HatchBrush(temp, Color.White, Color.Black);
  // Вывод имени из перечня HatchStyle.
  g.DrawString(temp.ToString(), new Font (''Times New Roman", 10), Brushes.Black, 0, yOffSet);
  // Закраска объекта подходящей кистью.
  g.FillEllipse(theBrush, 150, yOffSet, 200, 25);
  yOffSet += 40;
 }
}

В окне вывода будут показаны заполненные овалы для первых пяти значений видов штриховки (рис. 20.15).


Рис. 20.15. Некоторые стили штриховки

Исходный код. Проект BrushStyles размещен в подкаталоге, соответствующем главе 20.

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


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