Читайте также:
|
|
Цель класса ControlTemplate – позволить полностью изменять внешний вид элемента, не меняя его логику:
<ControlTemplate TargetType=’{x:Type Button}’>
<Border x:Name=’border’>
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger Property=’IsPressed’ Value=’true’>
<Setter TargetName=’border’ Property=’Background’ Value=’Red’ />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
DataTrigger тут помогает только частично: мы можем декларативно выполнить преобразование данных и привязку. Но для отображения элемента управления нужна большая гибкость. Класс Trigger дополняет функциональность DataTrigger, добавляя свойства EnterActions и ExitActions. Следовательно, в ответ на переход свойства из одного состояния в другое мы можем, например, начинать и заканчивать анимацию. С другой стороны, объект EventTrigger получает извещение от события (к примеру, MouseEnter или Loaded) и позволяет управлять несколькими анимациями.
Краткие итоги
В этой главе мы рассмотрели, как добавить поведение в ответ на событие, инициированное пользователем или системой, с помощью различных моделей действий: событий, команд и триггеров.
Набор для практики
Вопросы:
1. Маршрутизируемые события. Их вида и назначения.
2. Команды. Интерфейс ICommand. Реализация команд.
3. Триггеры. Виды триггеров и их особенности.
Тесты
Задача 1.
Вариант 1 Задачи 1.
Какого вида маршрутизированных событий не существует:
Ответ 1. прямые
Ответ 2. всплытие
+ Ответ 3. цикличные
Ответ 4. туннельные
Вариант 2 Задачи 1.
Какого вида маршрутизированные события существуют:
+ Ответ 1. прямые
+ Ответ 2. всплытие
Ответ 3. цикличные
+ Ответ 4. туннельные
Вариант 3 Задачи 1.
Какие события продвигаются от корня дерева к целевому элементу
Ответ 1. туннельные
Задача 2.
Вариант 1 Задачи 2.
<Window...
PreviewMouseRightButtonDown=’WindowPreviewRightButtonDown’
MouseRightButtonDown=’WindowRightButtonDown’ >
<GroupBox
PreviewMouseRightButtonDown=’GroupBoxPreviewRightButtonDown’
MouseRightButtonDown=’GroupBoxRightButtonDown’ >
<StackPanel>
<Button>One</Button>
<Button
PreviewMouseRightButtonDown=’ButtonTwoPreviewRightButtonDown’
MouseRightButtonDown=’ButtonTwoRightButtonDown’ >
Two
</Button>
</StackPanel>
</GroupBox>
</Window>
Во время работы этой программы события возникают в следующем порядке:
+ Ответ 1.
Window PreviewMouseRightButtonDown.
Window PreviewMouseRightButtonDown.
GroupBox PreviewMouseRightButtonDown.
Button PreviewMouseRightButtonDown.
Button MouseRightButtonDown.
GroupBox MouseRightButtonDown.
Window MouseRightButtonDown.
Ответ 2.
Button MouseRightButtonDown.
GroupBox MouseRightButtonDown.
Window MouseRightButtonDown.
Window PreviewMouseRightButtonDown.
Window PreviewMouseRightButtonDown.
GroupBox PreviewMouseRightButtonDown.
Button PreviewMouseRightButtonDown.
Ответ 3.
Window PreviewMouseRightButtonDown.
Window PreviewMouseRightButtonDown.
Window MouseRightButtonDown.
GroupBox PreviewMouseRightButtonDown.
GroupBox MouseRightButtonDown.
Button PreviewMouseRightButtonDown.
Button MouseRightButtonDown.
Вариант 2 Задачи 2.
<Window...
PreviewMouseRightButtonDown=’WindowPreviewRightButtonDown’
MouseRightButtonDown=’WindowRightButtonDown’ >
<GroupBox
PreviewMouseRightButtonDown=’GroupBoxPreviewRightButtonDown’
MouseRightButtonDown=’GroupBoxRightButtonDown’ >
<StackPanel>
<Button>One</Button>
<Button
PreviewMouseRightButtonDown=’ButtonTwoPreviewRightButtonDown’
MouseRightButtonDown=’ButtonTwoRightButtonDown’ >
Two
</Button>
</StackPanel>
</GroupBox>
</Window>
Во время работы этой программы события возникают в следующем порядке:
+ Ответ 1.
Window PreviewMouseRightButtonDown.
Window PreviewMouseRightButtonDown.
GroupBox PreviewMouseRightButtonDown.
Button PreviewMouseRightButtonDown.
Button MouseRightButtonDown.
GroupBox MouseRightButtonDown.
Window MouseRightButtonDown.
Ответ 2.
Button MouseRightButtonDown.
GroupBox MouseRightButtonDown.
Window MouseRightButtonDown.
Window PreviewMouseRightButtonDown.
Window PreviewMouseRightButtonDown.
GroupBox PreviewMouseRightButtonDown.
Button PreviewMouseRightButtonDown.
Ответ 3.
Window PreviewMouseRightButtonDown.
Window PreviewMouseRightButtonDown.
Window MouseRightButtonDown.
GroupBox PreviewMouseRightButtonDown.
GroupBox MouseRightButtonDown.
Button PreviewMouseRightButtonDown.
Button MouseRightButtonDown.
Вариант 3 Задачи 2.
Дата добавления: 2015-08-13; просмотров: 87 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Добавление триггеров к данным | | | Если мы хотим получать извещения о нажатии любой кнопки в окне, достаточно просто вызвать метод |