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

Композиция элементов

Читайте также:
  1. C - матрица (по форме напоминает куб) применяется для определения взаимосвязи элементов трех списков одновременно.
  2. V. НАЗЕМНАЯ ОТРАБОТКА ЭЛЕМЕНТОВ ПРЫЖКА
  3. Биохимия форменных элементов крови
  4. Взаимовлияние технологии и элементов проектирования структур
  5. Взаимообращаемость элементов некроидного круга.
  6. ВЗАИМОСВЯЗИ ПЕРВОЭЛЕМЕНТОВ
  7. Взаимосвязь элементов нижестоящего и вышестоящего уровней

Если взглянуть на устройство кнопки, то на самом деле мы увидим, что она составлена из нескольких элементов. Из-за наличия подобной композиции возникает интересная проблема при обработке событий. Памятуя о простоте модели программирования, мы хотим, чтобы код подписки на событие нажатия кнопки был прост и хорошо знаком разработчикам. Мы не должны требовать ничего сверх обычного присоединения обработчика к событию Click:

Button b = new Button();
b.Content = «Click Me»;
b.Click += delegate { MessageBox.Show(«You clicked me!»); };

На первый взгляд, выглядит замечательно, но посмотрим, что тут реально происходит. Ведь щелкаем мы не по кнопке, а по какому-то из элементов, из которых кнопка составлена. Чтобы все работало гладко, в WPF введено понятие маршрутизации события, которое позволяет обойти составляющие элементы. Продемонстрировать его мы сможем, добавив в предыдущем примере вторую кнопку, которая будет выступать в качестве содержимого. Щелчок как по первой, так и по второй кнопке приводит к возбуждению события:

Button b = new Button();
b.Content = new Button();
b.Click += delegate { MessageBox.Show(«You clicked me!»); };

Получающееся дерево отображение показано на рис. 8.1, из которого также видно, что нам следует озаботиться не только двумя кнопками. Даже в простом случае единственной кнопки композиция событий необходима для того, чтобы маршрутизировать событие мыши до кнопки.


Рисунок. 8.1. Дерево отображения (слева) кнопки, в которую вложена другая кнопка (справа)

 

Композиция элементов отражается на всех аспектах обработки действий, а не только на событиях.


Дата добавления: 2015-08-13; просмотров: 78 | Нарушение авторских прав


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

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