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

 

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

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

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

public ColorDlgFormO
colorDlg = new Systen.windows.corri;s.ColorDis1og(): Text = "Click on me to change the color":
this.MouseUp +- new MouseEventHandler(this,Co1orDlgForra_MouseLlp):
]
private void ColorDlgForeJtouseUpfcoject sender, ttou seE vent Args e)
hMcolort>lg.5h!*OiologO != DlalogReswlt.Cancel) {
CurrColor - colorDlg.Col or; tnis.BacKCobr = currColor; II Выводим информацию о выбранном цвете string strARGB = colorDlg.Color.ToStringO; Message?ox.ShowCstr-ARGB. "Color is:"):
}
, 1
Результат работы этого приложения представлен на рис. 9.8.
Iculnr і1,: ш
Cola [Afeli »-255, Red-12В, Green-O, Bkje-64]


Рис. 9.8. Работаем с классом ColorDialog
Работа со шрифтами 427
Несмотря на то что мы еще не обсуждали работу с диалоговыми окнами, предыдущий код вряд ли должен вызвать у нас какие-либо затруднения. Обратит : внимание, что мы можем определить, какую кнопку нажал пользователь в диалоговом окне (OK или Cancel), проверяя значение, возвращаемое методом ShcwOialooC;, на предмет соответствия значениям перечисления DIalogResuH. В этой главе мы будем работать с другими диалоговыми окнами, а создавать свои собственные на -учимся в главе 10.
Код приложения CobrDlg можно найти в подкаталоге Chapter 9.
Работа со шрифтами
Главный класс, который используется для работы со шрифтами в GDI+, - это класс System.Drawing.Font, Объекты этого класса представляют конкретные шрифты, установленные на компьютере. В этом классе предусмотрено множество перегруженных конструкторов, но вот два наиболее часто используемых варианта:
//Создаем объект Font, указывая имя шрифта и его размер Font f = new Font("Times New Roman", 12);
Il Создаем объект Font, указывая имя, размер и стиль
Font f2 - new FontrWingDings". 50. FontStyle.Bold | FontStyle.Underline);
При создании f2 мы использовали стили из перечисления FontStyle, Как мы видим, можно задавать сразу несколько стилей одновременно. Значения из перечисления FontStyle представлены в 9.12.
Таблица 9.12. Доступные стили из перечисления FontStyle
Член перечисления FontStyle Стиль
Bold Полужирный
Italic Курсив
Regular Обычный текст
Strikeout Зачеркнутый
Underline Подчеркнутый
После того как мы настроили необходимые параметры объекта Font, наша следующая задача — передать их методу Graphi es. DrawStri ngO. Несмотря на то что этот метод многократно перегружен, как правило, приходится указывать стандартный набор информации: текстовую строку, которая будет выводиться, используемые шрифт и кисть (толщина линии), а также область вывода. Например:
// public void DrawStr1ng(Str1ng. Font, Brush, Point);
g.DrawStringC'My string", new Font ("Pop". 25). new SolidBrush(Color. Black),
new Point (0,0));
// public void DrawStnng<String, Font. Brush, float, float);
g,DrawString("Another string", new Font("Times New Roman". 16),
new SolidBrush(Color.Red). 40. 40);
В обоих примерах мы использовали тип SoFi d?rush (с конкретным цветом). Впил не возможно одновременно использовать несколько типов кистей. В нашей ситуа
428 Глава 9 • Графика становится лучше
ции нас вполне устраивает сплошная кисть (solid brush), более экзотические разновидности логических кистей будут рассмотрены ниже в этой главе.
После того как объект Font создан, мы можем использовать его многочисленные сііпіістіш, такие как Bold, Italic, Unit, Height, ¦ и многие другие.
Семейства шрифтов
В пространстве имен System Draw і ng определен еще один важный тип — FontFaTn 1у, семейство шрифтов. Этот тип определяет наборы гарнитур, схожие по начертанию, но отличающиеся стилем или размером. Например, семейство шрифтов Verdana включает в себя шрифты « Verdana размер 12 полужирный» и « Verdana размер 24 курсив».
Конструктор типа FontFarnily принимает текстовое имя семейства шрифтов. После того как объект FontFamily создан, его можно использовать для получения конкретного шрифта:
// Создаем объект FontFamily
FontFamily myFanily - new FontFamily("Verdana"):
Il Передаем сознанный нами объект как параметр для конструктора Font Font myFont = new Font (my Family. 12);
e.Graphics.DrawString("Hello?". myFont. Brushes.Blue. ю. 10):
Для разработчиков приложений, в которых важную роль играет правильное размещение шрифта в отведенной ему области, большой интерес представляют члены типа РспсГа/ні 1у, Например, при помощи них можно определить среднюю ширину символа данного шрифта, выяснить, насколько могут выступать символы этого шрифта над строкой или под строку и т. п. Наиболее важные члены FontFami 1 у представлены в табл. 9.13. Обратите внимание, что каждый из этих методов принимает только значение из перечисления e.
Таблица 9.13. Члены типа FontFarnily Член Назначение
GetCellAscentQ Возвращает значение верхнего выступа для шрифтов-членов этого семейства
GetCellDescentO Возвращает значение нижнего выступа для шрифтов-членов этого семейства
GetEmHeightO Возвращает квадрат, определяемый самой широкой и самой высокой буквами шрифта (значение Em)
GetLineSpacingO Возвращает расстояние между двумя соседними строками шрифта дпя шрифтов данного семейства при указанном FontStyle
Предыдущая << 1 .. 168 169 170 171 172 173 < 174 > 175 176 177 178 179 180 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100