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

 

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

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

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

}
I
Для подключения главного меню наш конструктор вызывает метод Initiri 1 і zeComponents(). Со средствами создания главного меню мы познакомились в предыдущей главе, поэтому если у вас возникли какие-либо вопросы относительно системы меню, советуем вам обратиться к исходному коду приложения (приложение FontApp в подкаталоге Chapter 9).
С объектом Timer мы также познакомились в предыдущей главе. Обработчик. события Tick должен увеличивать значение переменной swel IVaIие и перерисовывать клиентскую область нашей формы. Чтобы шрифт при «разбухании» не превысил все разумные размеры, мы установим для s«e. lvalue максимум, равный 50. И еще один момент: чтобы уменьшить мерцание, связанное с перерисовкой всей клиентской части формы, мы будем обновлять только определенный «грязный прямоугольник на форме:
private void FontfCr-H-OnT1HSr(OhOeCt sender. EventArgs e) {
Il При каждом "тике" разнер шрифта увеличивается на 5 swel!Value += 5:
432 Глава 9 Графика становится лучше (GDI+}
Graphics g = е.Graphics:
//Размер шрифта будет меняться некду 12 и 62 в зависимости от текущего значения // swell Value
Font theFont = new FonttfontFace. 12 + swellValue): string message = "Hello GtJi*",
Il Выводим сообщение по центру формы float windowCenter = this.DisplayRectangle.Width/2: SizeF stnngSize = g.MeasureString(message. theFont): float startPos = windowCenter - (stringSize.width/2):
g.DrawStringcnsssage. theFont. new So1idSrush(Cc1or.Blue). startPos, 10);
}
Последнее, что мы должны сделать, — настроить включение и отключение «разбухания» шрифта при выборе пользователем пункта меню Configure (Настроить) > Swell? (Разбухать?). Для этого необходимо настроить обработчик ConfigSwel 1 ^Clicked для включения и отключения объекта Timer;
private void ConfigSwell_Clicked(object sender. EventArgs e)
{
timer.Enabled - !timer.Enabled;
rnainMenu.MenuItems[l]. MenuIterns[0].Checked = timer.Enabled:
}
Выводим информацию об установленных шрифтах (System. Drawing Text)
Давайте наделим наше приложение FontApp дополнительными возможностями. Пусть это приложение будет программным образом получать информацию об установленных в системе шрифтах и выводить эту информацию на форму. Для этой цели нам потребуются ТИПЫ из еще одного пространства имен GDI+ — System. Drawing. Text. Ca-мые интересные для нас типы из этого пространства имен представлены в табл.
Таблица 9.14. Типы пространства имен System.Drawing.Text Тип Назначение
InstalledFontColtection Представляет набор всех шрифтов, установленных на компьютере PrivateFontCoi lection Коллекция для объектов Font
LineSpacing Это перечисление определяет значения, при помощи которых можно
настроить расстояние между строками текста
TextRenderingHint Еще одно перечисление, при помощи которого можно установить
качество графики при выводе текста. Например, при использовании значения Text текст будет выводиться очень быстро, но с невысоким качеством изображения, при использовании Anb'Aliased качество изображения возрастет за счет скорости вывода и т. п.
Вывод списка установленных в системе шрифтов будет производиться при выборе пользователем пункта меню Configure (Настроить) > List Installed Fonts (Вывести установленные шрифты) — рис. 9,12,
Работа со шрифтами 433
,Cl.....App яга в
File . Configure •
V Swell? : Font Face ¦ » fjello 6ВЛ+

=======
Рис. 9.12. Еще один пункт в меню Configure (Настроить)
Механизм работы будет таким: при выборе пользователем этого пункта меню активируется соответствующий обработчик события (ггшСоптї gShowFonts_Cl і eked ()). Первое, что делает этот метод - создает объект класса I nsta 11 edFontCol 1 ecti on. Этот класс содержит массив FontFaml 1у, представляющий набор всех шрифтов, установленных на данном компьютере. Получить доступ к объектам этого массива можно при помощи свойства Instdl ledFontCollection.Fami lies.. Последнее, что нам осталось сделать,— тіш* ь имя каждой гарнитуры шрифта при помощи свойства FontFanfily. Name. Полученные значения записышются в переменную типа string, которую мы назовем •installedFonts:
public class FontForm : Systern.Windows.Forms .Form
i
// Для хранения списка шрифтов private string installedFonts:
Il Обработчик события меню для вывода списка установленных в системе шрифтов private void mnuConfigShowFonts_Clicked(object sender, EventArgs e)
Install edFofitCc I lection fonts new instal ledFontCollectlonf):
for(int 1=0. i < fonts.Families.Lenght: i (
installedFonts += fonts.Families[i].Name + " ";
}
// На этот раз нан потребуется перерисовать всю клиентскую область формы. // поскольку вывод полученных значений будет производиться в нижнюю часть .11 форны InvalidateO;
}
Г
Последнее, SBQ мы должны чтят* — вывести значение переменной і nsta 11 edFonts на форму. При этом нам необходимо учесть, что в верхнюю часть формы уже про изводится вывод «разбухающей» строки Hello GDI+, и сделать так, чтобы выводимые строки не мешали друг другу:
private void FontForm. Painuobject sender. Pa-ntEventArgs e) {
Предыдущая << 1 .. 170 171 172 173 174 175 < 176 > 177 178 179 180 181 182 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100