Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 181

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 175 176 177 178 179 180 < 181 > 182 183 184 185 186 187 .. 320 >> Следующая

В качество примера приведем программу, которая будет использовать типы Sol ItIBr usfi и Brushes для иакранпшаиия'пространства внутри геометрических фигур. То, что должно получиться в итоге, представлено на рис. 9.19 (выглядит немного знакомо, не правда
Конечно же, это вариант нашего приложения РепАрр, в котором мы решили закрасить внутренние пространства геометрических фигур при помощи кистей
SoltdSrushes и методов Fi OXX'X(; вместо перьев Реп и методов urawXx'X>'() Выглядеть соответствующий код может так:
private void HAr-C'<riJa-"t(obiect sender, i'dinlLvenlArqs e)
FillRegion()
Закрашивает внутреннюю область объекта Region (Region — это внутренняя область геометрической фигуры)
Рис. 9.19. Работаем с объектами кистей
Graphics g - є Graphics:
И Создаем "плотную кисть" - SolidBrush - синего цвета SolidBrush biue?rush = new SDlidBrush(Color.BliJe):
Обзор пространства имен System.Drawing.Drawing2D 445
II Создаем еще одну кисть при помощи заранее готовой коллекции Brushes SolidBrush реп2 - (SolidBrush)Brushes.Firebrick:
II Закрашиваем этими кистями геометрические фигуры g. Fi 11 Ell ipsetblueBrush. 10, 10. 100. 100); g.FillPie(Brushes.Black. 150, 10. 120. 150, 90. 80);
Il Закрашиваем многоугольник пурпурным цветом SolidBrush brush3 = new SolidBrushtColor.Purple);
g,Fi 11 Polygon(brush3. new Point[]{ new Point(30, 140).
new Point(265. 200),
new PointaOO. 225),
new Poitrt(190. 190).
new Point<50, 330),
new Point(20. ISO)} ); II и прямоугольник с текстом - синим: Rectangle г = new Rectangle(150. 10, 130, 60); g.Fi 11Rectangle(Brushes.Blue, г): g.DrawStringC'Hello out there...Now areya?",
new Font("Arial". 12), Brushes .White, r);
;
Код приложения SoHd B rush App можно найти в подкаталоге Chapter 9.
Работаем со штриховыми кистями
Более сложное «закрашивайне» можно произвести при помощи производного Brush классаHatchBrush, определенного в пространстве имен System. Drawing. Drawing2t'. Этот тип позволяет закрасить внутреннюю область объекта при помощи большой > количества шаблонов штриховки, определенных в перечислении HatchStyle. Этих шаблонов действительно очень много, поэтому в табл. 9.23 мы приводим только некоторые из них.
Таблица 9.23. Значения перечисления HatchStyle (стили штриховки)
Значение_Описание_
BackwardDiagonal Диагональная штриховка с наклоном оправо
Crass «Крестообразная» штриховка, состоящая из пересекающихся вертикальных
и горизонтальных линий
DiagonalCross Еще одна разновидность «крестообразной» штриховки, состоящая из пересекающихся диагональных линий
Forward Diagonal Диагональная штриховка с наклоном влево
Hollow «Пустая» кисть, которая ничего не рисует
Horizontal Горизонтальная штриховка
Pattern Штриховка, которая создается на основе указанного пользователем
растрового изображения
Solid Обычная «плотная» кисть без всякой штриховки (аналогично обычному
типу SolidBrush)
Vertical Вертикальная штриховка _
При создании объекта HatchBrush нам обязательно нужно будет указать два та: цвет «переднего плана» и цвет фона. В качестве примера мы внесем изменения
446 Глава 9 • Графика становится лучше (GDI+)
latch lifushP*.,,
Min Mm Verticil
FoiwsidDiagonil
BackwardDiagonal
LsigeGiid
LsigeOtid
DiagonalCtoss
PwentOJ
PercenllD
IIIIIIIIIIIIIIIIIHH»
0*
-"¦¦¦¦¦«aамм aа'МММшлшщт-
Рис. 9.20. Стили штриховки
в наше приложение РепСарАрр. Теперь оно вместо линий с завершениями будет выводить эллипсы со штриховкой:
private void Ma і nForm_Pa і nt (obj ест sender, PaintEventArgs e)
Graphics g - e Graphics; int yOffSet - 10;
Il Помещаем в массив все члены перечисления HatchStyle Array obj = Enum.GetValues(typeof(HatchStyle)):
// Выродин эллипс со штриховой, соответствующей . перечисления HatchStyle
// с1 по 10
fordnt х-0; X < 10; х++) i
// Настраиваем кисть
HatchStyle temp = (HatchStyle)obj.GetValue(x);
HatchBrush theBrush - new HatchBrush(temp. Color.White, Color.Black);
II Выводим ИМЯ каждого из значений перечисления
g.DrawStringttemp.ToStringO- new Font("Times New Roman", 10),
new SolidBrush (Color.Black), 0. yOffSet);
II Закрашиваем эллипс штриховой кистью
д. Fi ЛЕЇ I Ipse (theBrush. 15D,yOffSet. 200, 25);
yOffSet +- 40;
¦
Результат работы программы представлен на рис. 9.20.
Код приложения BrashStyles можно найти в подкаталоге Chapter 9.
Обзор пространства имен Syste.m.Drawing.Drawing2D 447
Работаем с текстурными кистями
Помимо штриховых кистей, распоряжении разработчика GDI + имеются также текстурные кисти, представленные типом TextureBrush. Эти кисти «закрашивают» отведенную для этого область текстурой — то есть указанным нами растровым изображением. Об особенностях работы с изображениями в GDI+ (при помощи класса Image) вы узнаете несколькими страницами позже, а пока мы скажем только, что для TextureBrush используется ссылка на объект Image, представляющий изображение. Изображение может быть внешним файлом (в формате \brnp, \gif или \jpg) или сборкой .NET.
Какобьгано.мыпроиллюстрируемприменениеклассаТехШгеВгазпнапримере.. В нашем случае этот класс будет использован для того, чтобы:
Предыдущая << 1 .. 175 176 177 178 179 180 < 181 > 182 183 184 185 186 187 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100