
- •А.А. Волосевич
- •1. ОбщееописаниеWpf
- •2. ПРостейшее ПриложениеWpf
- •4. Базовые концепции wpf Иерархия классов
- •Свойства зависимостейи присоединённые свойства
- •Маршрутизируемыесобытия
- •Многопоточность в wpf
- •5. СтруктуРа Оконного приложения wpf
- •Класс Window
- •КлассApplication
- •6. Компоновка
- •Размер и выравнивание
- •Основные контейнеры компоновки
- •Прокрутка и декорирование содержимого
- •7. Обзор элеменТов управления
- •Цвета и окантовка:
- •Шрифт содержимого:
- •Элементы управления содержимым
- •Списковые элементы управления
- •Прочие элементы управления
- •8. Фигуры
- •9. Цвет,кисти, прозрачность Представление цвета в wpf
- •Лучшие кисти
- •Прозрачность
- •10. Трансформации и эффекты
- •11. Классы drawing иvisual
- •12. Ресурсы
- •Двоичные ресурсы
- •Логические ресурсы
- •13. Привязка данных Базовые концепции привязки данных
- •Практическое использование привязки данных
- •Конвертеры значений
- •Проверка данных
- •14. Стилии триггеры
- •15. ПрИвязкакколлекциямиШаблоныданных
- •16. Представления Данных
- •17. ШАблоны элементов управления
4. Базовые концепции wpf Иерархия классов
Типы, связанные с технологией WPF, сгруппированы в несколько сборок. Сборка PresentationFramework.dll содержит классы верхнего уровня–окна, панели, элементы управления. В этой сборке находятся типы для реализации высокоуровневых программных абстракций, например, стилей. Сборка PresentationCore.dll содержит базовые классы, от которых унаследованы все фигуры и элементы управления. В WindowsBase.dll описаны ещё более базовые ингредиенты, которые потенциально могут использоваться вне WPF. Кроме этого, частью WPFявляется библиотека milcore.dll, написанная на неуправляемом коде. Функции библиотекиmilcore.dll транслируют визуальные элементы в примитивы Direct3D.
Рассмотрим базу иерархии классов WPF(рис. 3).
Рис. 3. Базовые классы иерархии типов WPF.
1. System.Threading.DispatcherObject. Приложения WPF используют однопоточную модель (single-threadaffinity, STA)–весь пользовательский интерфейс принадлежит единственному потоку. Чтобы содействовать работе моделиSTA, каждое приложение WPF управляется диспетчером, координирующим обработку сообщений. Будучи унаследованным от DispatcherObject, объект может удостовериться, выполняется ли его код в правильном потоке, и обратиться к диспетчеру, чтобы направить код в поток интерфейса.
2. System.Windows.DependencyObject. WPFподдерживает мощную модель свойств зависимостей (dependencyproperty), которая положена в основу таких средств, как уведомления об изменениях, наследуемые значения по умолчанию и более экономичное хранилище информации свойств. Наследуясь от DependencyObject, классы WPF получают поддержку свойств зависимости.
3. System.Windows.Media.Visual. Любой класс, унаследованный от Visual, обладает способностью отображаться в окне. Класс Visual инкапсулирует инструкции рисования, включая отсечения, прозрачность и настройки трансформации фигур. Этот класс также обеспечивает связь между управляемыми библиотеками WPF и библиотекойmilcore.dll.
4. System.Windows.UIElement. Этот класс добавляет поддержку таких сущностей WPF, как компоновка, ввод, фокус и события (layout, input, focus, events – LIFE).В UIElementопределён двухшаговый процесс измерения и организации компоновки. Этот класс вводит поддержку расширенной системы передачи событий, именуемоймаршрутизируемыми событиями (routedevents).И, наконец,UIElement добавляет поддержку команд.
5. System.Windows.FrameworkElement. КлассFrameworkElementдобавляет поддержку привязки данных, анимации, стилей и ресурсов. Этот класс также реализует некоторые абстрактные концепции UIElement.
6. System.Windows.Controls.Control. Элемент управления (control) – это элемент, который может взаимодействовать с пользователем.Примерами элементов управления являются классы TextBox (поле для ввода текста) иButton(кнопка). Класс Control добавляет к FrameworkElement свойства для установки шрифта, а также цветов переднего плана и фона. Но наиболее интересная деталь, которую он предоставляет– это поддержка шаблонов, которая позволяет заменять стандартный внешний вид элемента управления вашим собственным.
7. System.Windows.Controls.ContentControl. Это базовый класс для всех элементов управления, которые имеют отдельный «кусок» содержимого. Наиболее впечатляющая часть этой модели заключается в том, что единственный кусок содержимого может быть чем угодно – от обычной строки до панели компоновки, содержащей комбинацию других фигур и элементов управления.
8. System.Windows.Controls.ItemsControl. Это базовый класс для всех элементов управления, которые отображают коллекцию каких-то единиц информации (например, ListBox и TreeView). Списковый элемент управления гибок–используя встроенные средства класса ItemsControl, можно трансформировать обычный ListBox в список переключателей, список флажков, ряд картинок или комбинацию разных элементов по своему выбору.
9. System.Windows.Shapes.Shape. От этого класса наследуются базовые фигуры, такие как Rectangle,Polygon,Ellipse,Line и Path. Эти фигуры могут быть использованы наряду с более традиционными визуальными элементами вроде кнопок и текстовых полей.
10. System.Windows.Controls.Panel. Это базовый класс для всех контейнеров компоновки– элементов, которые содержат в себе один или более дочерних элементов и упорядочивают их в соответствии с определёнными правилами компоновки.