Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 12. Рисование.doc
Скачиваний:
23
Добавлен:
02.04.2015
Размер:
324.1 Кб
Скачать

Объекты Color, Brush и Pen

Объекты Color. Brush и Реп формируют облик графического элемента. Объект Brush

применяют для отображения закрашенных фигур, Реп для отображения прямых

и дуг, а объект Color задает цвет фигуры.

Color

Структура Color располагается в пространстве имен System.Drawing и представляет

некоторый цвет. Каждый цвет определяется четырьмя значениями: Alpha, представ-

ляющим прозрачность, и тремя значениям Red, Green и Blue из диапазона 0-255.

Чтобы создать новый цвет, необходимо передать эти значения методу Color.From-

Argb:

Visual Basic .Net

Dim myColor As Color

nyColor - Color.FromArgb(123, 255, 12, 43)

Visual C#

Color ir.yColor;

nyColor = Color,FromArgb(128, 255, 12, 43);

Если вы не используете эффект прозрачности, параметр Alpha можно пропус-

тить, указав только значения Red, Green и Blue:

Visual Basic .NET

Visual C#

Применение GDI-f- 313

Кроме того, множество стандартных цветов доступно в .NET Framework в виде

именованных цветов:

Visual Basic .NET

Dim myColor As Color

myColor = Color.Tomato

Visual C#

Color myColor;

myColor = Color.Tomato;

Brush

Объект Brush представляет кисть и служит для рисования закрашенных фигур. Все

разновидности кистей являются потомками абстрактного класса Brush и позволяют

создавать закрашенные фигуры различного вида. Типы кистей и пространства имен,

в которых расположены соответствующие объекты, описаны в таблице 7-5.

Таблица 7-5. Типы кистей

Тип Пространство имен Описание

SolidBrush

TextureBrush

System. Drawing

System. Drawing

HatchBrush System. Drawing. Drawing2D

Linear Gradient Brush System. Drawing. Draw ing2D

Path Gradient Brush System.Drawing. Drawing2D

Сплошная одноцветная кисть

Кисть для заливки замкнутого контура

изображением

Кисть для узорной заливки

Кисть для заливки двухцветным

градиентом

Кисть, использующая сложную

градиентную запивку

Для создания объекта SolidBrush достаточно указать цвет, например:

Visual Basic .Net

Dim myBrush As New SolidBrushfColor.PapayaWhip)

Visual c#

SolidBrush myBrush - new SolidBrush(Color.PapayaWhip};

Конструкторы других кистей сложнее и требуют дополнительных параметров.

Например, для создания кисти типа TextureBrush необходим объект Image, а для

LinearGradientBrush — два цвета и ряд других параметров, в зависимости от типа

выбранного конструктора.

Реп

Объекты Реп представляют перья, они предназначены для рисования прямых и дуг,

а также для применения к контурным фигурам различных графических эффектов.

Существует только один класс Реп, и он является запечатанным (sealed). Создать

объект класса Реп несложно, достаточно указать его цвет:

314 Создание элементов управления с помощью .Net Framework Глава 7

Visual Basic .NET

Dim myPen As New Pen(Color.BlanchedAlmond)

Visual C#

Pen myPen = new Pen(Color.BlanchedAlmond);

В результате исполнения предыдущего кода создается перо, ширина которого

по умолчанию равна 1 пикселу. Ширину задают в конструкторе объекта Реп следу-

ющим образом;

Visual Basic .NET

Dim myPen As New Pen(Color.Lime, 4J

Visual C#

Pen rnyPen - new Pen(Color. Lirne, 4):

Этот код назначает ширину пера, равную четырем пикселам. Перо можно со-

здать и на основе имеющейся кисти, вид таких перьев будет согласован со стилем

интерфейса. Это особенно удобно при использовании сложных теней и других эф-

фектов. Следующий пример демонстрирует создание пера на основе имеющейся

кисти myBrush:

Visual Basic .NET

Dim myPen As New Pen(myBrush)

Visual C#

Pen rnyPen - new Pen{myBrush);

При создании пера на основе кисти также разрешается задавать ее ширину.

Системные кисти, перья и цвета

При разработке пользовательского интерфейса иногда нестандартные компоненты

приходится оформлять в том же стиле, что и системные. Для этого .NET Framework

предоставляет доступ к системным цветам через класс SystemColors, который содер-

жит набор статических членов, представляющих текущие системные цвета. Так, при

разработке нестандартных компонентов пользовательского интерфейса можно на-

значить им системные цвета, чтобы в период выполнения они отображались с ис-

пользованием текущей системной палитры. Получить доступ к системным цветам

можно так: