Шаблоны. Типы шаблонов презентация

Содержание


Презентации» Информатика» Шаблоны. Типы шаблонов
Шаблоны
 Каждый элемент управления имеет встроенное средство, определяющее способ его визуализацииПримерШаблоны
 Класс ButtonChrome определяет стандартные визуальные элементы кнопки, в то времяТипы шаблонов
 В мире WPF существует три типа шаблонов, и всеТипы шаблонов
 Шаблоны панелей применяются для управления компоновкой позиций в списочномКлассы Chrome
 Класс ButtonChrome определен в пространстве имен Microsoft.Windows.Themes, которое содержитКлассы Chrome
 На чуть более высоком уровне находится пространство имен System.Windows.Controls.Primitives,Создание шаблонов
 Чтобы применить специальный шаблон элемента управления, необходимо просто установитьПримемрТриггеры, изменяющие свойстваПоддержка фокусаАвтоматическое применение шаблоновСтраничная навигация
 Чтобы создать страничное приложение в WPF, нужно перестать применятьПримерГлобальный файлГиперссылки
 Наиболее простой способ позволить пользователю перемещаться с одной страницы наПримерРазмещение страниц
 Элемент NavigationWindow является удобным контейнером, но не единственным вариантом.ПримерСлужба навигации
 Можно сделать так, чтобы значения свойств Hyperlink.NavigateUri и Frame.SourceСлужба навигации	
 В классе NavigationService определен набор методов для работы сСобытия навигации
 Класс NavigationService также предоставляет полезный набор событий, которые можноПроцесс навигации в WPF описан ниже:
 Определяется местонахождение страницы.
 Извлекается информацияСобытия навигации
 Navigating
 Процесс навигации начинается. Это событие можно отменить иСобытия навигации
 FragmentNavigation
 Страница готовится к прокручиванию до целевого элемента. ЭтоСобытия навигации
 NavigationProgress
 Процесс навигации идет полным ходом, и часть данных



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Шаблоны Каждый элемент управления имеет встроенное средство, определяющее способ его визуализации (как группу более фундаментальных элементов). Это средство называется шаблоном элемента управления (control template) и определяется с помощью блока XAML-разметки. Каждый элемент управления WPF спроектирован как не имеющий внешнего вида, в том смысле, что его внешний вид может быть полностью переопределен.


Слайд 2
Описание слайда:
Пример

Слайд 3
Описание слайда:
Шаблоны Класс ButtonChrome определяет стандартные визуальные элементы кнопки, в то время как ContentPresenter хранит все содержимое. Для построения совершенно новой кнопки понадобится лишь создать новый шаблон элемента управления. Вместо ButtonChrome можно было бы использовать что-то другое, возможно, собственный специальный элемент или элемент, рисующий фигуру.

Слайд 4
Описание слайда:
Типы шаблонов В мире WPF существует три типа шаблонов, и все они наследуются от базового класса FrameworkTemplate. Наряду с шаблонами элементов управления (представленными классом ControlTemplate) есть шаблоны данных (классы DataTemplate и HierarchicalDataTemplate), а также более специализированный шаблон панели для ItemsControl(ItemsPanelTemplate). Шаблоны данных используются для извлечения данных из объекта и отображения их в элементе управления содержимым либо в индивидуальных позициях списочного элемента. Шаблоны данных незаменимы в сценариях привязки данных. В некоторой степени шаблоны данных и шаблоны элементов управления пересекаются. Например, оба типа шаблонов позволяют вставлять дополнительные элементы, применять форматирование и т.д. Однако шаблоны данных служат для добавления элементов внутрь существующего элемента управления.

Слайд 5
Описание слайда:
Типы шаблонов Шаблоны панелей применяются для управления компоновкой позиций в списочном элементе управления (элементов, унаследованных от класса ItemsControl). Например, их можно использовать для создания окон списков, которые располагают свои элементы слева направо и затем сверху вниз (вместо стандартного размещения сверху вниз в один столбец).

Слайд 6
Описание слайда:
Классы Chrome Класс ButtonChrome определен в пространстве имен Microsoft.Windows.Themes, которое содержит относительно небольшой набор сходных классов, визуализирующих базовые детали Windows. Наряду с ButtonChrome он включает BulletChrome (для флажков и переключателей), ScrollChrome (для полос прокрутки), ListBoxChrome и SystemDropShadowChrome.

Слайд 7
Описание слайда:
Классы Chrome На чуть более высоком уровне находится пространство имен System.Windows.Controls.Primitives, содержащее множество базовых элементов, которые можно использовать независимо, но гораздо чаще помещать в оболочки более удобных элементов управления. К ним относятся ScrollBar, ResizeGrip (для изменения размеров окна), Thumb (перетаскиваемая кнопка на полосе прокрутки), TickBar(дополнительный набор засечек на ползунке) и т.д. По сути, System.Windows.Controls.Primitives представляет готовые ингредиенты, которые можно применять в самых разных элементах управления, и которые не слишком полезны сами по себе, в то время как Microsoft.Windows.Themes содержит низкоуровневую логику рисования для визуализации этих деталей.

Слайд 8
Описание слайда:
Создание шаблонов Чтобы применить специальный шаблон элемента управления, необходимо просто установить свойство Template элемента. Хотя можно определить встроенный шаблон (поместив дескриптор шаблона элемента внутрь дескриптора самого элемента управления), этот подход редко бывает оправдан. Дело в том, что шаблон почти всегда нужно использовать многократно, создавая обложки для нескольких экземпляров одного и того же элемента управления. Шаблон элемента управления должен быть определен как ресурс, на который можно будет ссылаться с помощью StaticResource.

Слайд 9
Описание слайда:
Примемр

Слайд 10
Описание слайда:
Триггеры, изменяющие свойства

Слайд 11
Описание слайда:
Поддержка фокуса

Слайд 12
Описание слайда:
Автоматическое применение шаблонов

Слайд 13
Описание слайда:
Страничная навигация Чтобы создать страничное приложение в WPF, нужно перестать применять для пользовательских интерфейсов в качестве контейнера высшего уровня класс Window и вместо него переключиться на класс System.Windows.Controls.Page.

Слайд 14
Описание слайда:
Пример

Слайд 15
Описание слайда:
Глобальный файл

Слайд 16
Описание слайда:
Гиперссылки Наиболее простой способ позволить пользователю перемещаться с одной страницы на другую — это гиперссылки. В WPF гиперссылки являются не отдельными, а внутристрочными потоковыми элементами, которые обязательно должны размещаться внутри другого поддерживающего их элемента. (Причина такого проектного решения связана с тем, что гиперссылки и текст часто используются вперемешку.)

Слайд 17
Описание слайда:
Пример

Слайд 18
Описание слайда:
Размещение страниц Элемент NavigationWindow является удобным контейнером, но не единственным вариантом. Страницы также можно размещать и непосредственно внутри других окон или даже внутри других страниц. Это подразумевает возможность создания чрезвычайно гибкой системы, поскольку означает, что одну и ту же страницу можно использовать многократно разными способами в зависимости от типа приложения, которое требуется создать. Чтобы вставить страницу внутрь окна, нужно воспользоваться классом Frame. Класс Frame представляет собой элемент управления содержимым, который может удерживать любой элемент, но особенно полезен именно в качестве контейнера для страницы. Он включает свойство под названием Source, которое указывает на отображаемую страницу XAML.

Слайд 19
Описание слайда:
Пример

Слайд 20
Описание слайда:
Служба навигации Можно сделать так, чтобы значения свойств Hyperlink.NavigateUri и Frame.Source устанавливались динамически. Однако самый гибкий и мощный подход предполагает использование службы навигации WPF. Получать доступ к этой службе навигации можно через контейнер, в котором размещена страница (например, объект Frame или NavigationWindow), но такой подход ограничивает страницы использованием в контейнере только этого типа. Поэтому лучше всего получать доступ к службе навигации через статический метод NavigationService.GetNavigationService()

Слайд 21
Описание слайда:
Служба навигации В классе NavigationService определен набор методов для работы с навигацией. Наиболее часто используется метод Navigate(), который позволяет переходить на страницу по ее URI:

Слайд 22
Описание слайда:
События навигации Класс NavigationService также предоставляет полезный набор событий, которые можно использовать для реагирования на навигацию. Наиболее распространенной причиной реагирования на навигацию является необходимость выполнения по ее завершении какой-то задачи. Поскольку навигация осуществляется асинхронным образом, возврат из метода Navigate() происходит до появления целевой страницы. В некоторых случаях разница во времени может быть значительной.

Слайд 23
Описание слайда:
Процесс навигации в WPF описан ниже: Определяется местонахождение страницы. Извлекается информация о странице. (Если страница находится на удаленном сайте, тогда она на этом этапе загружается.) Устанавливается местонахождение всех необходимых странице и связанных с ней ресурсов (например, изображений) и выполняется их загрузка. Осуществляется синтаксический анализ страницы и генерируется дерево ее объектов. На этом этапе страница запускает события Initialized (если только она не восстанавливается из журнала) и Loaded. Страница визуализируется. Если URI включает фрагмент, WPF переходит сразу же к этому элементу.

Слайд 24
Описание слайда:
События навигации Navigating Процесс навигации начинается. Это событие можно отменить и тем самым предотвратить выполнение навигации Navigated Процесс навигации начался, но целевая страница еще не извлечена LoadCompleted Страница прошла синтаксический анализ. Однако события Initialized и Loaded еще не были сгенерированы

Слайд 25
Описание слайда:
События навигации FragmentNavigation Страница готовится к прокручиванию до целевого элемента. Это событие срабатывает только в случае, если используется URI с информацией о фрагменте NavigationStopped Процесс навигации был отменен с помощью метода StopLoading() NavigationFailed Процесс навигации не удался из-за того, что не получилось обнаружить или загрузить целевую страницу. Это событие можно использовать для нейтрализации исключения до того, как оно появится и превратится в необработанное исключение приложения. Для этого необходимо просто установить NavigationFailedEventArgs.Handled в true

Слайд 26
Описание слайда:
События навигации NavigationProgress Процесс навигации идет полным ходом, и часть данных страницы уже загружена. Это событие вызывается периодически для предоставления информации о ходе навигации. Оно предоставляет информацию об объеме данных, которые уже загружены (NavigationProgressEventArgs.BytesRead), и общем объеме данных, которые требуется загрузить (NavigationProgressEventArgs.MaxBytes). Это событие запускается после каждого извлечения данных объемом 1 Кбайт

Слайд 27
Описание слайда:


Скачать презентацию на тему Шаблоны. Типы шаблонов можно ниже:

Похожие презентации