Книга: C# для профессионалов. Том II

Кисти

Кисти

GDI+ имеет несколько различных видов кистей, мы объясним простейшие из них, чтобы знать о принципах. Каждый тип кисти представлен экземпляром класса, производным из System.Drawing.Brush (этот класс является абстрактным, поэтому нельзя создать экземпляры объектов Brush как только объекты производных классов). Простейшая кисть указывает, что область должна быть заполнена сплошным цветом. Этот вид кисти представлен экземпляром класса System.Drawing.SolidBrush, который можно создать таким образом:

Brush solidBeigeBrush = new SolidBrush(Color.Beige);
Brush solidFunnyOrangyBrownBrush = new SolidBrush(Color.FromArgb(255, 155, 100)

Альтернативно, если кисть является одним из именованных цветов Интернета, то можно создать кисть более просто с помощью другого класса System.Drawing.Brushes. Brushes является одним из тех классов, экземпляры которых реально никогда не создаются (он имеет закрытый конструктор, чтобы не дать возможности это сделать). Большое число статических свойств возвращает кисть специального цвета. Brushes используется так:

Brush solidAzureBrush = Brushes.Azure;
Brush solidChocolateBrush = Brushes.Chocolate;

Следующий уровень сложности представляет штриховая кисть, которая заполняет область, рисуя некоторый шаблон-узор. Этот тип кисти находится в пространстве имен Drawing2D, представленном классом System.Drawing.Drawing2D.HatchBrush. Класс Brushes не сможет помочь в случае штриховой кисти, необходимо будет создать одну из них явно, задавая стиль штриховки и два цвета — цвет переднего плана и цвет фона (но можно опустить цвет фона, в таком случае по умолчанию используется черный цвет). Стиль штриховки задают с помощью перечисления System.Drawing.Drawing2D.HatchStyle. Существует большое число доступных значений HatchStyle, поэтому проще всего обратиться к документации MSDN для получения полного списка. Типичными стилями, например, являются ForwardDiagonal, Cross, DiagonalCross, SmallConfetti и ZigZag. Ниже приведены примеры создания штриховой кисти

Brush crossBrush = new HatchBrush(HatchStyle.Cross, Color.Azure);
// фоновый цвет для CrosstBrush будет черный
Brush brickBrush = new HatchBrush(HatchStyle.DiagonalBrick, Color.DarkGoldenrod.Color.Cyan);

Сплошные и штриховые кисти — единственные кисти, доступные в GDI. GDI+ добавляет пару новых стилей кисти:

? Кисть System.Drawing.Drawing2D.LinearGradientBrush заполняет область цветом, который изменяется на экране.

? Кисть System.Drawing.Drawmg2D.PathGradientBrush действует аналогично, но в этом случае цвет меняется вдоль кривой в закрашиваемой области. Мы не будем рассматривать здесь эти кисти. Отметим только, что обе они могут создать интересные эффекты при аккуратном использовании. Пример Bezier из главы 9 использует кисть с линейным градиентом для закрашивания фона окна.

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

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

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