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

 

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

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

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

Dash Штриховая линия
DashDot Штрихпунктирная линия: штрих -- точка — штрих
DashDotDot Штрихпунктирная линия: штрих — точка — точка — штрих (как в нашем примере).
Dot Пунктир из одних точек
Solid Сплошная линия
Помимо использования готовых стилей пунктирных линий из перечисления DashStyles, мы можем также определить свой собственный стиль. Для этого используется свойство DashPattern класса Реп:
Обзор пространства имен System,Drawing.Drawing2D 441
// Выводим пунктирную линию нашего собственного стиля по периметру формы Pen customdashPen - new Pen(Color.aiueViolet. 5): float[] myDashes = {5.Of. г.Of, L.Of. 3.Of}:
customDashPen.DashPattern = myDashes; g.DrawRectangle(custoraDashPen, ClientRectangle):
Результат выполнения обновленной программы (обратите внимание на рамку вокруг формы) представлен на рис. 9.17,
Код приложения РепАрр можно найти в подкаталоге Chapter 9.
IHeIIo out there...How are ya?
1 ¦ ¦ -
V
Рис. 9.16. Возможности класса Реп
Hello Out there...How are jya?
O
I V /
L\t_________L
Рис. 9.17. Используем свой собственный стиль пунктирной линии
442 Глава 9 • Графика становится лучше (GDI+)
Работаем с «наконечниками» перьев
При рассмотрении предыдущей формы можно обнаружить, что концы всех нарисованных на ней линий обрезаны стандартным образом - под прямым углом. Если мы предпочитаем более изысканные окончания линий, в нашем распоряжении — перечисление LineCap. Значения этого перечисления представлены в табл. 9.21.
Таблица 9.21. Значения перечисления LineCap
Значение
Описание
ArrowAnchor Линии оканчиваются стрелками
DianronclAnchof Линии оканчиваются «бриллиантами» (ромбами)
Flat Стандартное прямоугольное завершение линий
Round Линии на концах скруглены
RoundAnchor На концах линий — «шары»
Square На концах линий — квадраты в толщину линии
SquareAnchor На концах линий — квадраты большего чем толщина линии
Triangle Треугольное жжшж линий
В качестве примера создадим приложение, в котором при помощи класса Реп будет нарисовано множество линий с разными окончаниями. Наш код выведет для каждого из значений перечисления Lifo I Ij его имя (типа ArrowAnchor), а затем нарисует рядом линию с использованием этого значения:
private void MainForm Paint (object sender. PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen thePen = new Pen(Color.Black, 10);
int yOffSet - 10;
Il Получаен все значения перечисления LineCap Array obj = Enum.GetValiies(t.ypeof(LineCap));
И Выводим линию с использованиен значения из LineCap
fortint X = 0; X < obj.Length: х++)
{
// Настраиваем "наконечник" пера LineCap temp - (LineCap)obj.GetValue(x): thePen.StartCap - temp; thePen.EndCap = temp;
Il Выводим имя значения перечисления
g,DrawString(terap.ToStringO. new Font("Times New Roman", 10),
new SolidBrushfColor.Black). 0, yOffSet);
Il Выводим линию с выбранным наконечникон g.DrawLine(thePen. 100, yOffSet. Width - 50, yOffSet):
yOffSet
To, что должно получиться, представлено на рис. 9.18.
Обзор пространства имен System.Drawing.Drawin.g2D 443
Square
Round
Triangle
NoAnchor
SquaieAnchor
RoutidAnchof
DiMUOXIiiAuCho
AirowAnehor
AnchorMstk '! ;s:.-.-г..
Рис. 9.18. «Наконечники» для перьев Код приложения РепСарАрр можно найти в подкаталоге Chapter 9.
Работаем с кистью
Будем считать, что к этому моменту мы уже свободно владеем пером. Следующий инструмент мастера GDI+ — это кисть (bmsl''), Кисти предназначены для «з;ткра шнвааия» пространства между линиями. Мы можем определить для кисти цвет текстуру или даже изображение. Сам класс Brush является абстрактным, и создавать объекты этого класса мы не можем. Вместо этого в нашем распоряжении мае: сы, производные от Brush, такие как Sol iclBrush, HatchBrush, Li nearGradi entBrush и т. п, Кроме того, создавать объекты кистей (выбрав из заранее готового набора) можно при помощи типов-коллекций Brashes и System. Brushes, также определенных в пространстве имен System. BrawlЩ. Создание объектов из этихтипов-ко л лекции производится при помощи их статических свойств. Далее мы можем передать созданный объект кисти в качестве параметра соответствующему методу объекта Graphics. В предыдущем примере мы передавали объект класса . :!: методу Graph і es. DrawStn гд() для вывода текстовых строк. Однако «редяк*»» методы, которые принимают объекты кистей, это - методы Fi 11XXX«). Набор этих методов представлен в табл. 9.22.
Кроме того, выбранную кисть также можно использовать для создания объекта Реп (перо ). Это перо сможет рисовать лнзши, используя все возможности кисти
(например, линия будет покрыта текстурами или изображением).
444 Глава 9 * Графика становится лучше (GDI+)
Таблица 9.22. Методы RIIXXXX() класса Graphics
Метод
Назначение
FillCiusedCurveO Закрашивает область внутри замкнутой кривой FillEllipseO Закрашивает область внутри эллипса
Закрашивает область внутри траектории
FillPieO Закрашивает область внутри сегмента эллипса
Fi!IPo!ygon{J Закрашивает область внутри многоугольника
FillRectangleO Закрашивают область внутри прямоугольника (нескольких прямоугольников) FillRectanglesQ
Предыдущая << 1 .. 174 175 176 177 178 179 < 180 > 181 182 183 184 185 186 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100