Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Добавление триггеров к элементам управления

Читайте также:
  1. I. Концепция научного управления.
  2. I. Организационные структуры управления.
  3. II. Концепция административного управления (классическая школа управления).
  4. II. Основные направления деятельности органов студенческого самоуправления.
  5. III. Концепция управления с позиции психологии и человеческих отношений.
  6. III. Органы студенческого самоуправления.
  7. III. Структура управления службой (отделом)

Цель класса 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 | Нарушение авторских прав


Читайте в этой же книге: Задача 4. | Свойство, которое возвращает или задает тип, для которого предназначен данный стиль. | Шаг 2. Создание пользовательского элемента управления | Шаг 5. Использование Custom Control | Шаг 1. Инкапсуляция UI в User Control | Композиция элементов | Слабая связь | События | Команды | Команды и привязка к данным |
<== предыдущая страница | следующая страница ==>
Добавление триггеров к данным| Если мы хотим получать извещения о нажатии любой кнопки в окне, достаточно просто вызвать метод

mybiblioteka.su - 2015-2024 год. (0.008 сек.)