Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемТамара Гагарина
1 Михаил Черномордиков Developer Evangelist, Microsoft Россия
2 Модель элементов управления
3 Использование UserControl
4 UserControl Сценарии Фиксированный внешний вид с одной и той же логикой Разделение больших страниц на мелкие части Повторное использование разметки и логики Поддержка платформы … public partial class MyControl : UserControl {} XAML необязателен
5 UserControl «Страница» в Silverlight является UserControl Визуальные элементы Связывание данных События клавиатуры и мыши … и многое другое
6 User Controls Custom Controls 1.Декомпозиция приложения 2.Повторное использование 1. Разделение на модули 2. Дизайнер может менять внешний вид
7 Custom Controls Сценарии Четкое разделение между логикой и представлением Возможность изменять визуальное представление без влияния на программную логику Поддержка платформы Включен большой набор custom controls Созданы возможности для создания новых custom controls
8 Styling
9 Styling Ресурсы Общий XAML-файл, на который могут ссылаться различные элементы вашего приложения Набор свойств, который могут быть применимы к элементам управления, тексту, формам и т.д. Silverlight 2 Write once поведение Темы приложений пока не поддерживаются BasedOn-стили пока не поддерживаются
10 Skinning
11 Skinning Набор элементов, создающих визуальную структуру элемента управления {TemplateBinding} Связывание между визуальным шаблоном и визуальными свойствами элемента управления
12 Styling и Skinning Простая форма
13 Внешний вид по умолчанию generic.xaml Ресурс проекта в DLL-файле элемента управления Содержит ресурсный словарь с встроенными стилями DefaultStyleKey Значение – тип элемента управления Указывает на generic.xaml и конкретный стиль в нем Можно указать субкласс для изменения внешнего вида по умолчанию Стиль по умолчанию НЕ влияет на свойство Style элемента управления
14 Определение контракта Мне нужен бегунок, нажатое состояние… Пытаюсь понять, что мне нужно поместить в шаблон… Сделаем тебе бегунок, нажатое состояние…
15 Введение в модель частей и состояний Цели Определение структуры элемента управления Явное разделение логики и представления Явный контракт элемента управления Рекомендации НЕ делать определения в runtime Есть поддержка в Blend
16 Части Именованные элементы шаблона Код взаимодействует с этими элементами каким-либо образом
17 Состояния Визуальное представление элемента в конкретном состоянии MouseOver Pressed
18 Переходы Визуальное представление элемента во время перехода между состояниями MouseOverPressed
19 Группы состояний Группа непересекающихся состояний Различные группы ортогональны друг другу Поддержка в Expression Blend
20 Пример состояний - CheckBox CommonStates Normal Mouseover Pressed Disabled CheckStates Unchecked Checked Indeterminate
21 VisualStateManager VisualStateManager VisualStateGroups
22 Использование состояний VisualState class Содержит storyboard с определением представления Может быть статичной или постепенной анимацией VisualStateGroup class Коллекция непересекающихся объектов класса VisualState
23 Использование переходов VisualTransition class Как выглядит элемент управления во время перехода между состояниями Содержит длительность автоматической анимации переходов
24 Типы VisualTransition Типы переходов: (MouseOver -> Pressed) From/To To From Default Выбирается наиболее специфичный тип
25 VisualStateManager VisualStateManager GoToState() VisualStateGroups
26 Создание логики элемента управления Метаданные контракта элемента управления [TemplatePart] для определения конкретной части [TemplateVisualState] для определения конкретного состояния НЕ используется в runtime. Используется инструментами – Visual Studio, Expression Studio
27 VisualStateManager.GoToState(control, stateName, useTransitions) Управляет логикой изменения состояний Возвращает true, если состояние было найдено Выбирает наиболее подходящий переход VisualTransition Генерирует автоматические переходы Создание логики элемента управления
28 Visual State Manager Изменение вида стандартного элемента
29 public override void OnApplyTemplate() Вызывается, когда новый шаблон был применен Должен найти все Части Должен инициализировать изменения состояний без переходов FrameworkElement GetTemplateChild() Возвращает именованный элемент внутри шаблона Создание логики элемента управления
30 Что получаем в итоге? UserControls Custom Controls Styles & Templates ContentControls VisualStateManager
31 Михаил Черномордиков Developer Evangelist, Microsoft Россия
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.