Язык программирования C#9 и платформа .NET5
Шрифт:
При проектировании шаблона для отображения текстового значения элемента управления использовался элемент
Но что, если необходимо передать сложное содержимое члену шаблона, который не имеет свойства
Встраивание шаблонов в стили
В данный момент наш шаблон просто определяет базовый внешний вид и поведение элемента управления
При желании значения базовых свойств можно устанавливать в шаблоне. В сущности, таким способом фактически создаются стандартный внешний вид и поведение. Как вам уже должно быть понятно, это работа стилей WPF. Когда строится стиль (для учета настроек базовых свойств), можно определить шаблон внутри стиля! Ниже показан измененный ресурс приложения внутри файла
– ->
После такого обновления кнопочные элементы управления можно создавать с установкой свойства
Несмотря на то что внешний вид и поведение кнопки остаются такими же, преимущество внедрения шаблонов внутрь стилей связано с тем, что появляется возможность предоставить готовый набор значений для общих свойств. На этом обзор применения Visual Studio и инфраструктуры триггеров при построении специальных шаблонов для элемента управления завершен. Хотя об инфраструктуре WPF можно еще много чего сказать, теперь у вас имеется хороший фундамент для дальнейшего самостоятельного изучения.
Резюме
Первой в главе рассматривалась система управления ресурсами WPF. Мы начали с исследования работы с двоичными ресурсами и роли объектных ресурсов. Вы узнали, что объектные ресурсы представляют собой именованные фрагменты разметки XAML, которые могут быть сохранены в разнообразных местах с целью многократного использования содержимого.
Затем был описан API-интерфейс анимации WPF. В приведенных примерах анимация создавалась с помощью кода С#, а также посредством разметки XAML. Для управления выполнением анимации, определенной в разметке, применяются элементы
После этого вы прояснили отношение между логическим и визуальным деревьями. В своей основе логическое дерево является однозначным соответствием разметке, которая создана для описания корневого элемента WPF. Позади логического дерева находится гораздо более глубокое визуальное дерево, содержащее детальные инструкции визуализации.
Кроме того, вы изучили роль стандартного шаблона. Не забывайте, что при построении специальных шаблонов вы по существу заменяете все визуальное дерево элемента управления (или часть дерева) собственной реализацией.
Глава 28
Уведомления WPF, проверка достоверности, команды и MWM
В настоящей главе исследование программной модели WPF завершается рассмотрением возможностей, которые поддерживаются паттерном "модель-представление-модель представления" (Model View ViewModel — MWM). Вы также узнаете о системе уведомлений WPF и ее реализации паттерна "Наблюдатель" (Observer) через наблюдаемые модели и коллекции. Обеспечение автоматического отображения пользовательским интерфейсом текущего состояния данных значительно улучшает его восприятие конечными пользователями и сокращает объем ручного кодирования, требуемого для получения того же результата с помощью более старых технологий (вроде Windows Forms).