ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Напомним,
В качестве завершающего штриха давайте обработаем событие Resize формы, чтобы гарантировать соответствующую перерисовку в нижней части прямоугольника клиента в том случае, когда пользователь изменяет размеры формы.
На рис. 20.10 показан результат (с текстом, представленным шрифтом WingDings!).
Рис. 20.10. Приложение SwellingFontApp в действии
Исходный код. Проект SwellingFontApp размещен в подкаталоге, соответствующем главе 20.
Класс FontDialog
Как вы можете догадываться, существует и класс диалогового окна для настройки шрифтов (FontDialog). Вид этого окна показан на рис. 20.11.
Рис. 20.11. Диалоговое окно Шрифт Windows Forms
Подобно типу ColorDialog, рассмотренному в этой главе выше, для работы с FontDialog нужно просто вызвать метод ShowDialog. Используя свойства Font, можно извлечь текущие характеристики шрифта для использования в приложении. Для примера рассмотрите следующую форму, имитирующую логику предыдущего проекта ColorDlg. При щелчке пользователя в любом месте окна формы отображается диалоговое окно Шрифт и выводится информация о текущем выборе.
Исходный код. Проект FontDlgForm размещен в подкаталоге, соответствующем главе 20.
Обзор пространства имен System.Drawing.Drawing2D
Теперь, когда мы обсудили возможности использования типа Font, следующей нашей задачей будет рассмотрение объектов Pen и Brush, предназначенных для визуализации геометрических шаблонов. Вы, конечно, можете ограничиться использованием только вспомогательных типов Brushes и Pens для получения уже сконфигурированных типов со сплошным цветом, но вы должны знать о том, что в пространстве имен System.Drawing.Drawing2D есть очень много и более "экзотических" перьев и кистей,
Это дополнительное пространство
имен GDI+ предлагает ряд классов, позволяющих изменить форму пера (треугольник, ромб и т.д.), указать текстуру кисти и работать с векторной графикой. Некоторые базовые типы, о которых вам следует знать (сгруппированные по функциональным возможностям), описаны в табл. 20.6.Таблица 20.6. Классы System.Drawing.Drawing2D
Классы | Описание |
---|---|
AdjustableArrowCap CustomLineCap | Используются для изменения формы концов линий для перьев, Данные типы задают, соответственно, регулируемую стрелку и пользовательскую форму конца линии |
Blend ColorBlend | Позволяют определить шаблон смешивания (и цвет) для использования с LinearGradientBrush |
GraphicsPath GraphicsPathIterator PathData | Объект GraphicsPath представляет серию линий и кривых. Этот класс позволяет добавлять в траектории геометрические шаблоны практически любого вида (дуги, прямоугольники, линии, строки, многоугольники и т.д.). PathData содержит графические данные, формирующие траекторию |
HatchBrush LinearGradientBrush PathGradientBrush | Экзотические типы кистей |
Также следует знать о том. что пространство имен System.Drawing.Drawing2D определяет набор перечней (DashStyle, FillMode, HatchStyle, LineCap и т.д.), которые используются вместе с указанными в таблице базовыми типами.
Работа с типами Pen
Типы Pen GDI+ используются для построения линий, соединяющих конечные точки. Сам по себе тип Pen не слишком полезен. Для выполнения визуализации геометрической формы на поверхности производного от Control типа действительный тип Pen следует направить подходящему методу визуализации, определенному классом Graphics. Вообще говоря, с объектами Pen обычно используются методы DrawXXX, позволяющие отобразить некоторый набор линий на соответствующей графической поверхности.
Тип Pen определяет небольшой набор инструкторов, позволяющих задать начальный цвет и ширину пера. По большей части функциональные возможности Pen задаются свойствами, поддерживаемыми данным типом. Описания некоторых из этих свойств предлагаются в табл. 20.7.
Таблица 20.7. Свойства Pen
Свойства | Описание |
---|---|
Brush | Определяет тип Brush для использования с данным типом Pen |
Color | Определяет тип Color для использования с данным типом Pen |
CustomStartCap CustomEndCap | Читает или устанавливает параметры пользовательского стиля концов линий, создаваемых с помощью данного типа Pen. Стиль концов линий – это просто термин, используемый для обозначения того, как должен выглядеть начальный и заключительный 'штрих" данного пера. Эти свойства позволяют строить пользовательские стили начала и конца линий для типов Pen |
DashCap | Читает или устанавливает параметры стиля концов линий, используемого для прерывистых линий, создаваемых с помощью данного типа Pen |
DashPattern | Читает или устанавливает массив пользовательской маски для рисования прерывистых линий. Соответствующие "тире" складываются из сегментов линий |
DashStyle | Читает или устанавливает параметры стиля, используемого для прерывистых линий, создаваемых с помощью данного типа Pen |
StartCap EndCap | Читает или устанавливает встроенный стиль концов линий, создаваемых с помощью данного типа Pen. Стиль концов линий Pen устанавливается в соответствии с перечнем LineCap, определенным в пространстве имен System.Drawing.Drawing2D |
Width | Читает или устанавливает ширину данного Pen |
DashOffset | Читает или устанавливает расстояние от начала линии до начала шаблона прерывистой линии |