Использование стилей и шаблонов в Silverlight приложениях Сергей Лутай Руководитель департамента разработки мобильных приложений Digital Cloud Technologies Silverlight MVP, MCT, MCPD Содержание • Стили • Шаблоны • Состояния Конфигурация отображения • Изменение свойств элемента • <Style> элемент • Работает с Controls, UserControls, Shapes, Panels Возможности стилей • BasedOn стили ▫ Расширение сществующих стилей • Merged Resource Dictionaries ▫ Размещение стилей в разных файлах DEMO Конфигурация отображения • Полное изменение отображения • Элемент <ControlTemplate> • Расширение {TemplateBinding} • Работает с пользовательскими компонентами (не UserControls, Panels, Shapes) Части и состояния модели • Цели ▫ Облегчить изменения ▫ Разделение между логикой и отображением • Использование ▫ Не используется во время выполения ▫ Поддерживается в Expression Blend Части • Именование элементов (x:Name) в шаблонах • Управление из кода • Не обязательное Состояния • Визуальное отображение компонента в указанном состоянии • Элемент <VisualState> • Не обязательное MouseOver Pressed Переходы • Визуально компонент выполняет переходы мыжду состояниями • Элемент <VisualTransition> VisualTransition MouseOver Pressed Группы состояний • Набор взаимоисключающих состояний • Различные состояния групп - ортогональны • Элемент <VisualStateGroup> Normal MouseOver CommonStates ReadOnly Disabled Valid InvalidUnfocused ValidUnfocused Unfocused Focused FocusStates ValidationStates Using States & Transitions • VisualStateManager.VisualStateGroups ▫ • VisualStateGroup ▫ • Contains group of related states VisualState class ▫ • Attached property on root visual of ControlTemplate Contains storyboard that represents visual look VisualTransition class ▫ ▫ ▫ ▫ Contains duration for automatic transition animations Contains storyboard for explicit transition animation Default, or “To/From” transiitions GeneratedEasingFunction DEMO Сергей Лутай Silverlight MVP, MCT, MCPD @sergeylutay sergii.lutai@dctua.com http://lutay.uneta.com.ua