Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемИнна Неофидова
1 Ресурсы. Стили. Анимация. Лекция 15
2 Ресурсы Стили Анимация
3 Позволяют определять объекты, доступные другим элементам WPF в пользовательском интерфейсе Ресурсный объект определяется один раз, а может использоваться несколько раз Обычно определяются в XAML, но могут определятся и в коде. Объект любого типа может быть определен как ресурс. Каждый элемент WPF определяет коллекцию Resources. Коллекция Resources доступна самому элементу управления, в котором она определена, и элементам управления в его визуальном дереве. Чаще используют коллекцию Windows.Resources
4 Resources x:Key Resources x:Key x:Key – Задает имя ресурса, на который должны ссылаться желающие использовать этот ресурс. x:Key – должен быть уникален в той коллекции ресурсов, где определен, а не во всем документе Использование : StaticResource Hello DynamicResource Hello StaticResource StaticResource – ресурс определяется ( ищется ) только один раз DynamicResource DynamicResource – ресурс определяется каждый раз, когда это необходимо ( больше накладных расходов ) Ресурсы ищутся в коллекции ресурсов текущего элемента управления и в коллекциях ресурсов элементов выше в визуальном дереве до первого найденного ресурса с подходящим ключом.
5 Ресурсы
6 Resources Коллекция Resources – свойство FrameworkElement, а следовательно имеется и у любого его наследника. Resources – словарь (IDictionary) Добавление в словарь элемента. Метод Add Resources.Add("StartDate", DateTime.Now); myButton.Resources.Add("StartDate", DateTime.Now); Доступ к ресурсу элемента – как к словарю DateTime start = (DateTime)Resources["StartDate"]; DateTime end = (DateTime)grid.Resources[EndDate"]; Поиск ресурса в словарях вверх по визуальному дереву DateTime dt2 = (DateTime)FindResource("StartDate"); Безопасный поиск ресурса в словарях вверх по визуальному дереву Brush brush = (Brush)TryFindResource("MyBrush"); Brush redBrush = myButton.TryFindResource(RedBrush") as Brush; Изменение ресурса grid.Resources["myBrush"] = Brushes.Blue;
7 На уровне элемента Доступно элементу и всем ниже лежащим элементам в его визуальном дереве На уровне окна Доступно всем элементам в окне На уровне приложения Доступно всем элементам во всех окнах В отдельных словарях ресурсов Доступно в том месте, где подключен словарь Может быть доступно нескольким приложениям
8 Ресурсы могут хранятся в отдельном файле, словаре. XAML Могут использоваться в любом месте приложения Словарь (XAML файл ): ResourceDictionary xmlns=" xmlns:x=" x:Key x:Key ResourceDictionary x:Key x:Key ResourceDictionary">
9 Подключение словарей Resources ResourceDictionary MergedDictionaries ResourceDictionary Source MergedDictionaries ResourceDictionary Resources Использование ресурсов
10 Словари ресурсов
11 Ресурсы Стили Анимация
12 Стиль – это коллекция свойств, которые могут быть применены к объекту. Определяют общий набор характеристик Могут определять характеристики не связанные с форматированием. Любое Dependency Property. Поддерживают триггеры Стили устанавливают первоначальные характеристики, которые могут переопределяться.
13 Стили
14 Стили, обычно создаются в ресурсах Stylex:KeyTargetType Setter PropertyValue Style Style Использование : Могут создаваться и напрямую в элементе :
15 Коллекция Setters Свойства класса Setter: Property – какое свойство устанавливаем Value – значение Если сложное значение, то можно устанавливать и так :
16 Один стиль может применятся для разных типов элементов ( не рекомендуется ). Необходимо указать для какого типа задается свойство. …. TargetType Если указывается TargetType, то все свойства подразумеваются для этого типа
17 x:Key Свойство x:Key у стиля должно быть задано всегда, чтобы на него можно было сослаться. x:Key TargetType Но. Если свойство x:Key не задано, то стиль автоматически применяется для всех элементов типа заданного в свойстве TargetType …… Можно отменить автоматическое применение стиля к элементу задав свое свойство Style другим стилем или {x:Null}. Элемент может переопределить свойство, установленное стилем, явно задав его значение ( возможно благодаря возможностям DependencyProperty).
18 BaseOn Свойство BaseOn – может указывать на стиль от которого наследуется этот стиль. Может дополнять и переопределять свойства заданные в родительском стиле. ………….. Наследник должен быть предназначен для того же типа ( т. е. иметь такое же значение TargetType)
19 Коллекция Setters Коллекция Resources Свойство BasedOn Свойство TargetType Triggers Коллекция Triggers
20 Внесение простых изменений в зависимости от различных событий Декларативно Style.Triggers Добавляются в коллекцию Style.Triggers
21 Триггеры
22 Trigger Trigger – Триггер свойств. Наблюдает за свойством и активизируется, когда значение свойства будет равно Value MultiTrigger MultiTrigger – Мультитриггер. Наблюдает за множеством свойств и активизируется, когда значение всех свойств будет равно значениям Value DataTrigger DataTrigger – Триггер данных. Наблюдает за связанным свойством (Binding). MultiDataTrigger MultiDataTrigger – отслеживает множество связанных свойств EventTrigger EventTrigger – триггер событий. Инициирует серию объектов Action при порождении указанного события.
23 Свойство, за которым происходит наблюдение указывается в свойстве Property= свойство Значение свойства, при котором должен активироваться триггер, указывается в свойстве Value. Setters – коллекция установщиков Setter, которые устанавливают свойства элемента в случае активации триггера. Как только триггер становится неактивным, элементу управления возвращается его исходный вид.
24 Аналогично Trigger, но отслеживается несколько свойств одновременно. Отслеживаемые свойств задаются в коллекции MultiTrigger.Conditions объектами Condition
25 DataTrigger и MultiDataTrigger Такие же как и Trigger и MultiTrigger, но отслеживают связанные данные. Binding Вместо свойства Property имеется свойство Binding
26 В отличии от других триггеров, которые отслеживают значение свойства и сопоставляют его с указанным значением, триггеры событий указывают события и активизируются при его порождении. Содержит коллекцию Actions вместо коллекции Setters. Коллекция Actions содержит набор действий, которые должны быть выполнены при активации триггера. Анимация
27 Ресурсы Стили Анимация
28 Изменение свойств в течении промежутка времени Анимировать можно практически все свойства элемента управления Для анимации используются классы Animation ( более 40 классов ) Классы Animation: Линейные анимации Анимации по ключевым кадрам Анимация на основе путей
29 Линейная. Классы имеют формат имени Animation Например : DoubleAnimation, ColorAnimation, Int32Animation Анимация на основе ключевых кадров изменяет свойство, используя несколько точек маршрута – ключевых кадров. Поток анимации запускается и проходит через каждый ключевой кадр. AnimationUsingKeyFrames Например : DoubleAnimationUsingKeyFrames Анимация на основе путей использует объект Path. Используется для анимации свойств, связанных с перемещение объектов. AnimationUsingPath Например : DoubleAnimationUsingPath
30 Анимация
31 Организует анимацию в пользовательском интерфейсе и управляет ею. Содержит коллекцию Children, содержащую объекты Animation. Все объекты Animation, создаваемые в XAML, должны содержаться в объекте Storyboard. Если какое - либо свойство в Animation не заполнено, то используется свойство из Storyboard Все дочерние классы Animation запускаются одновременно Storyboard Набор анимаций для одного элемента TargetName = button1 – Конечный элемент для анимации. TargetProperty = Button.Width – Анимируемое свойство Свойства TargetName и TargetProperty являются прикрепленными, поэтому могут быть установлены в классе Animation
32 Duration Duration – длительность анимации AutoReverse AutoReverse – воспроизведение в обратном порядке после завершения BeginTime BeginTime – время начала запуска относительно времени анимации. 0:0:5 – 5 секунд AccelerationRatio AccelerationRatio – задает ускорение в начале анимации DecelerationRatio DecelerationRatio – задает замедление в конце анимации RepeateBehavior RepeateBehavior – задает повторяемость анимации Свойства линейной анимации : From From - начальное значение свойства для анимации. Если не указано, то используется текущее свойство элемента To To – конечное значение свойства By By – значение приращение. Используется, если To не задано.
33 Анимация может быть добавлена непосредственно в коллекцию Triggers элемента управления
34 Анимация элемента
35 Какую анимацию не стоит делать Лекция Романа Здебского Лучшие практики разработки производительных и интерактивных приложений на WPF
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.