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

Майринк Г. "Белый доминиканец " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 2" (Художественная литература)

Петров Г.И. "Отлучение Льва Толстого " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 1 " (Художественная литература)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 12 13 14 15 16 17 < 18 > 19 20 21 22 23 24 .. 473 >> Следующая

На заметку! Компонент milcore.dll реализован в неуправляемом коде потому, что ему требуется тесная интеграция с Direct3D, и потому, что для него чрезвычайно важна производительность.
На рис. 1.3 показаны слои, на которых построена работа приложения WPF.
PresentationFramework.dll
PresentationCore.dll
WindowsBase.dll
Управляемый API-интерфейс WPF
milcore.dll WindowsCodecs.dll Уровень медиа-интеграции
V J
?
/ Л
Direct3D User32
Рис. 1.3. Архитектура WPF
Book_Pro_WPF-2.mdb 39
18:09:37
40 Глава 1
На рис. 1.3 присутствуют следующие ключевые компоненты.
• PresentationFramework.dll содержит типы WPF верхнего уровня, включая те, что представляют окна, панели и прочие виды элементов управления. Также он реализует высокоуровневые программные абстракции, такие как стили. Большинство классов, которые вы будете использовать, находятся непосредственно в этой сборке.
• PresentationCore.dll содержит базовые типы, такие как UIElement и Visual, от которых унаследованы все фигуры и элементы управления. Если вам не нужен полный слой абстракции окон и элементов управления, вы можете спуститься ниже, на этот уровень, и продолжать пользоваться преимуществами механизма визуализации WPF.
• WindowsBase.dll содержит еще более базовые ингредиенты, которые потенциально могут использоваться вне WPF, такие как DispatcherObject и DependencyObject, поддерживающие механизм свойств зависимости (эта тема будет детально рассмотрена в главе 6).
• milcore.dll — ядро системы визуализации WPF и фундамент уровня медиа-интеграции (Media Integration Layer — MIL). Его составной механизм транслирует визуальные элементы в треугольники и текстуры, которых ожидает Direct3D. Хотя milcore.dll считается частью WPF, это также важнейший компонент Windows Vista. Фактически DWM (Desktop Window Manager — диспетчер окон рабочего стола) в Windows Vista использует milcore.dll для отображения рабочего стола.
На заметку! milcore.dll иногда называют механизмом “управляемой графики”. Подобно тому, как общеязыковая исполняющая система (CLR) управляет жизненным циклом приложения .NET, milcore.dll управляет состоянием дисплея. И так же, как CLR избавляет вас от забот об освобождении объектов и восстановлению памяти, milcore.dll избавляет от необходимости думать о недействительности и перерисовке окна. Вы просто создаете объекты с содержимым, которое хотите показать, а milcore.dll рисует соответствующие части окна, когда оно перемещается, скрывается и открывается, минимизируется и восстанавливается и т.д.
• WindowsCodecs.dll — низкоуровневый API, обеспечивающий поддержку изображений (например, обработку, отображение и масштабирование битовых карт и JPEG).
• Direct3D — низкоуровневый API, через который визуализируется вся графика в WPF.
• User32 используется для определения того, какое место на экране к какой программе относится. В результате он по-прежнему вовлечен в WPF, но не участвует в визуализации распространенных элементов управления.
Наиболее важный факт, который вы должны осознать, состоит в том, что Direct3D визуализирует все рисование в WPF. При этом не важно, установлена на вашем компьютере видеокарта со скромными возможностями или же более мощная, используете вы базовые элементы управления или рисуете более сложное содержимое, запускаете ваше приложение в Windows XP или Windows Vista. Даже двумерные фигуры и обычный текст трансформируется в треугольники и проходит по каналу 3-D. Нет никаких обращений к GDI+ или User32.
Book_Pro_WPF-2.mdb 40 19.05.2008 18:09:37
Введение в WPF 41
Иерархия классов
Читая эту книгу, большую часть времени вы потратите на изучение пространств имен и классов WPF. Но прежде чем начать, полезно будет взглянуть на общую иерархию классов, которые ведут к базовому набору элементов управления WPF.
На рис. 1.4 показан базовый обзор некоторых ключевых ветвей иерархии классов. Продвигаясь по главам этой книги, вы будете знакомиться с указанными (и связанными с ними) классами более подробно.
Shape
DispatcherObject
I
DependencyObject
I
Visual
I
UIElement
I
FrameworkElement
i
Control
ContentControl
ItemsControl
Условные
Panel
Рис. 1.4. Фундаментальные классы WPF
В последующих разделах описаны основные классы из этой диаграммы. Многие из них ведут к целым ветвям элементов (таких как фигуры, панели и элементы управления).
На заметку! Основные пространства имен WPF начинаются в System.Windows (например, System.Windows, System.Windows.Controls и System.Windows.Media). Единственным исключением являются пространства имен, начинающиеся с System.Windows. Forms, которые являются частью инструментария Windows Forms.
Book Pro WPF-2.indb 41
18:09:37
42 Глава 1
System.Threading. DispatcherObject
Приложения WPF используют знакомую однопоточную модель (single-thread affinity — STA), а это означает, что весь пользовательский интерфейс принадлежит единственному потоку. Взаимодействовать с элементами пользовательского интерфейса из других потоков небезопасно. Чтобы содействовать работе этой модели, каждое приложение WPF управляется диспетчером, координирующим сообщения (появляющиеся в результате клавиатурного ввода, перемещений курсора мыши и процессов каркаса, таких как компоновка). Будучи унаследованным от DispatcherObject, каждый элемент вашего пользовательского интерфейса может удостовериться, выполняется ли код в правильном потоке, и обратиться к диспетчеру, чтобы направить код в поток пользовательского интерфейса. Подробнее о модели многопоточности WPF будет сказано в главе 3.
Предыдущая << 1 .. 12 13 14 15 16 17 < 18 > 19 20 21 22 23 24 .. 473 >> Следующая