Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 90 91 92 93 94 95 < 96 > 97 98 99 100 101 102 .. 473 >> Следующая

Стоит отметить, что наследование значения свойства может осуществляться в элементах, которые даже не поддерживают это свойство. Например, предположим, что вы создаете окно, в котором имеется панель StackPanel, а внутри нее — три метки Label. Вы можете задать свойство FontSize окна, поскольку класс Window происходит от класса Control. Вы не можете задать свойство FontSize панели, поскольку она не является элементом управления. Тем не менее, если вы зададите свойство FontSize окна, значение свойства пройдет “сквозь” панель StackPanel, и его получат метки, которые, в конечном счете, изменят размер своего шрифта.
Наряду с параметрами шрифтов, в некоторых других базовых свойствах используется наследование значений свойств. Так, наследование применяется свойством Foreground в классе Control. А свойство Background не использует наследования. Тем не менее, фон, заданный по умолчанию, представляет собой пустую ссылку, которая визуализируется большинством элементов управления в виде прозрачного фона. (Это означает, что родительский фон будет просматриваться, как было показано на рис. 7.1.) В классе UIElement наследование поддерживается свойствами AllowDrop, IsEnabled и IsVisible. В классе FrameworkElement наследование поддерживается свойствами CultureInfo и FlowDirection.
На заметку! Свойство зависимостей поддерживает наследование только в том случае, если флаг FrameworkPropertyMetadata.Inherits будет иметь значение true, которое не является его значением по умолчанию. В главе 6 мы подробно говорили о классе FrameworkProperty Metadata и регистрации свойств.
Замена шрифтов
При установке шрифтов вы должны основательно подходить к выбору шрифта и выяснить заранее, будет ли он поддерживаться на пользовательском компьютере. Однако WPF может прийти на помощь в этом вопросе благодаря системе обхода шрифтов. Вы можете указать в свойстве FontFamily список шрифтов, разделяя их запятыми. После этого WPF сама выберет шрифт из заданного списка.
Ниже показан пример, в котором производится попытка использовать шрифт Technical Italic, а в случае невозможности его использования будут выбран шрифт Comic Sans MS или Arial:
<Button FontFamily="Technical Italic, Comic Sans MS, Arial">A Button</Button>
Если семейство шрифтов действительно будет содержать запятую в своем имени, вам нужно будет написать ее в строке дважды.
Между прочим, вы можете получить список всех шрифтов, установленных на текущем компьютере, с помощью статической коллекции SystemFontFamilies класса
Book_Pro_WPF-2.mdb 194 19.05.2008 18:10:00
Классические элементы управления 195
Бузкет.йП^о'из.Ме^а.Еопкз. Ниже показан пример, в котором эта коллекция используется для добавления шрифтов в окно списка:
ГогеаеЪ (Еоп1ЕатИу Еоп1ЕатИу 1п Еоп1з.8уз1етЕоп1Еат111ез)
{
1stЕonts.Items.Add(fontЕami1y.Source);
}
Объект ЕontЕami1y позволяет проверить другие детали, такие как междустрочный интервал и связанные гарнитуры.
На заметку! Одним из ингредиентов, которых нет в WPF, является диалоговое окно для выбора шрифта. Группа разработчиков WPF Text предложила два более привлекательных средства для выбора шрифта, включая версию без кода, использующую привязку данных (http://
blogs.msdn.com/text/archive/2 00 6/0 6/20/5 92 77 7.aspx), и более изощренную версию, которая поддерживает необязательные типографские особенности, которые можно встретить в шрифтах OpenType (http://blogs.msdn.com/text/archive/200 6/11/01/ sample-font-chooser.aspx).
Встраивание шрифтов
Другой опцией при работе с необычными шрифтами является их встраивание в приложение. Благодаря такой возможности, ваше приложение никогда не будет иметь проблем с нахождением требуемого шрифта.
Процесс встраивания очень прост. Сначала вы добавляете файл шрифта (как правило, файл с расширением .ttf) в приложение и присваиваете параметру Build Action значение Resource. (Это можно сделать в Visual Studio, выбрав файл шрифта в Solution Explorer и изменив Build Action в окне Properties (Свойства).)
Затем, при использовании шрифта, вам нужно будет добавить символьную последовательность ./# перед именем семейства, как показано ниже:
<Label FontFamily="./#Bayern" FontSize="20">This is an embedded font</Label>
Символы ./ WPF интерпретирует как текущую папку. Чтобы понять, что это означает, вы должны разобраться с системой упаковки XAML.
Как было сказано в главе 1, вы можете запускать автономные (т.н. несвязанные) XAML-файлы прямо в вашем браузере, не компилируя их. Единственное условие состоит в том, что XAML-файл не может использовать файл с базовым кодом. В этом случае WPF ищет файлы шрифтов, которые находятся в том же каталоге, в котором находится XAML-файл, и делает их доступными для вашего приложения.
Как правило, прежде чем запускать ваше WPF-приложение, вы будете компилировать его в сборку .NET. В этом случае текущая папка остается местом хранения XAML-документа, только на этот раз документ компилируется и встраивается в вашу сборку. WPF ссылается на скомпилированные ресурсы с помощью стандартизированного синтаксиса URI (Uniform Resource Identifier — унифицированный идентификатор ресурса), который будет рассматриваться в главе 11. Все URI-идентификаторы приложения начинаются с последовательности pack://application. Если вы создадите проект под именем ClassicControls и добавите окно EmbeddedFont.xaml, то окно будет иметь следующий URI-идентификатор:
Предыдущая << 1 .. 90 91 92 93 94 95 < 96 > 97 98 99 100 101 102 .. 473 >> Следующая