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

 

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

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

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

GetNameO Возвращает имя семейства шрифтов
IsStyleAvailableO Определяет, будет ли указанный FontStyle доступен для шрифтов из данного семейства
В качестве примера приведем обработчик события который возвращает
набор характеристик семейства шрифтов Verdana:
private void MairifurmJ-siritiobject sender, PaintEventArgs e) {
Graphics g = e.Graphics:
FontFamily : - . = new Fonf-ani iyr*erdaru">;
Работа со шрифтами 429
Font myFont new FonlCmyFamiIy1 12);
int у = 0; U Эта лергкеинвя будет использоваться у нас
// для смещения по координате у int fontHeight - my Font. Height; // Получаен высоту шрифта в пикселах
// Выводим информацию о единицах измерения, используемых для членов FontFamily this.Text = "Measurements are in GraphicsUnit." + myFont.Unit.ToStringO;
g.DrawStringt"The Verdana family.". myFont. Brushes.Blue. 10, y); у += 20;
Il Выводин всю информацию о нашей семействе шрифтов g.DrawString("Ascent for bold Verdana: " +
myFamily.GetCellAscent(FontStyTe.Bold).
n-vFont. Brush.«,.Black. 10. у + fontHeight);
у += 20;
g.DrawString("Descent for bold Verdana; " +
myFamily.GetCell Descent (Font Style. Bold). myFont. Brushes.Black. 10, у + fontHeight);
у += 20:
g.DrawStringC'Line spacing for bold Verdana: " +
myFami1у.GetL ineSpaci ng(FontSty1e.BoId). myFont, Brushes.Blact. 10. у + fontHeight);
у += 20;
g.DrawStnngC'Height for bold Verdana: " + myFamiIy.GetEmHeighttFontStyle.Bold). myFont. Brushes.Black. 10. у + fontHeight);
у += 20;
}
Результат выполнения этой программы представлен на рис. 9.9. Обратите вне -мание, что члены FontFaml Iy возвращают значения в пунктах (Point), которые равны 1/72 дюйма, а не в пикселах. Если есть необходимость, мы можем задать вывод этих значений в других единицах измерений.
І /Ми.-іьигі'пмчїій are in Gi-flpiiicsUm
The Verdana
Ascent for bold Verdana: 2059 Descent for bold Verdana: 430 Line spacing for bold Verdana: 2489 Height for bold Verdana: 2048
Рис. 9.9. Как получить параметры шрифта при помощи объекта FontFamily Код приложения FontFamily можно найти в подкаталоге Chapter 9.
Единицы измерения для шрифта
Если еще вы никогда не работали на таком «типографском» уровне со шрифтами, полезно будет ознакомиться с некоторыми терминами из этой области. Все разм<-
430 Глава 9 * Графика становится лучше (GDI+)
Создаем приложение с возможностью выбора шрифта
Чтобы лучше освоить работу со шрифтами, мы создадим приложение, которое позволит пользователю выбирать нужный ему тип шрифта при помощи меню Configure (Настроить) > Font Face (Гарнитура шрифта). То, что должно получиться, представлено на рис.
Рис. 9.11. Приложение с возможностью выбора шрифта
Кроме того, чтобы было интереснее, мы разрешим пользователю косвенно управлять размером шрифта. Пусть при выборе пользователем пункта меню Configure (Настроить) * Swell? (Разбухать?) шрифт начнет увеличиваться скачками через равные промежутки времени (при помощи объекта Timer), пока не достигнет установленного нами предела.
что мы должны сделать, — создать новый класс, производный от System. Winows. Forms. Form (представляющий главную форму нашего приложения). Затем мы должны позаботиться о переменных: для объекта "іакт. для хранения информации о гарнитуре шрифта и для текущего размера шрифта:
'*..:+пс class FcritForn- System.Windows Т>;гь+опт {
private Timer timer; private int swellValue;
// Этот шрифт будет использоваться по унолчанию:
- ___ Г
Высота \ M f *
шрифта
Рис. 9.10. Анатомия шрифта
рi,i шрифта основываются на двух воображаемых линиях, которым соответствуют верхняя и нижняя границы символов данного шрифта. Некоторые символы (такие KHKJ, у, g) выступают за пределы нижней границы, другие (h, f, h) — за пределы верхней. Высота шрифта - это расстояние между самой нижней точкой символа, который более всего выступает вниз, и самой верхней точкой символа, который более всего выступает вверх (рис. 9.10).
- і Верхний
-„ выносной элемент і 1
Высота
строчной буквы Нижний
выносной элемент
Работа со шрифтами 431
// При достижении максимального размера уменьшаем размер до нуля
if(swel!Value >= 50) swel!Value = 0;
II Перерисовываем нужную нам прямоугольную область формы lnvalidate(new Rectangle(0. 0. ClientRectangle.Width. 100)):
}
Теперь примерно каждые 100 миллисекунд значение swel 1 VaI ье будет изменяться, а верхние 100 пикселов клиентской части формы — перерисовываться. Нам осталось связать swel !Value и размер шрифта, а также обеспечить вывод текстовой строки на форму. Выглядеть это может так:
private void FontFormJPaint(object sender. PaintEvenLsArgs e)
(
private string fontface = "WingD-;ngs":
public l-Y.filF'crniU {
Il Считаем, что система меню создана при помощи графических средств Visual // Studio.IDE
lnitializeComponentsC);
timer = new Timer О: Text = "Font App"; Width = 425: Height = 150:
BackColor = Color.Honeydew: CenterToScreenC);
II Настраиваем таймер
timer.Enabled = true: timer.Interval - 100;
timer.Tick += new EventHandler(FontForm_OnTiraer):
Предыдущая << 1 .. 169 170 171 172 173 174 < 175 > 176 177 178 179 180 181 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100