Маршрутизируемыесобытия

Маршрутизируемые события (routedevents) – модель событий WPF, созданная для использования в дереве визуальных элементов. При генерации маршрутизируемого события информация о нём может быть передана как родительским, так и дочерним элементам источника событий.

Реализация и использование маршрутизируемых событий имеет много общего со свойствами зависимостей. Рассмотрим в качестве примера реализацию события Clickв стандартном элементе управления Button:

publicclassButton : ButtonBase

{

// статическое поле для маршрутизируемого события

publicstaticRoutedEventClickEvent=

EventManager.RegisterRoutedEvent("Click",

RoutingStrategy.Bubble,

typeof(RoutedEventHandler),

typeof(Button));

// экземплярнаяоболочкасобытия

publiceventRoutedEventHandler Click

{

add { AddHandler(ClickEvent, value); }

remove { RemoveHandler(ClickEvent, value); }

}

// внутреннийметоддлягенерациисобытия

protectedoverridevoidOnClick(EventArgse)

{

RaiseEvent(newRoutedEventArgs(ClickEvent, this));

}

}

МетодыAddHandler(),RemoveHandler()иRaiseEvent() – этометодыклассаUIElement. Листинг показывает, что при регистрации маршрутизируемого события используется метод EventManager.RegisterRoutedEvent(). Одним из аргументов метода является элемент перечисления RoutingStrategy, описывающего стратегию маршрутизации события:

· Tunnel – событие генерируется в корневом элементе, затем в каждом дочернем элементе, пока не будет достигнут элемент-источник.

· Bubble – событиегенерируетсявэлементеисточнике, затемвкаждомродительскомэлементе, вплотьдокорнядереваэлементов.

· Direct – событиегенерируетсятольковэлементе-источнике.

Обработчики маршрутизируемых событий принимают аргумент RoutedEventArgs. Этот класс содержит четыре полезных свойства:

§ Source – источник события в логическом дереве элементов;

§ OriginalSource – источник события в визуальном дереве элементов;

§ Handled – это значение можно установить в true для остановки маршрутизации события в дереве;

§ RoutedEvent – объект, описывающий маршрутизируемое событие.

КлассUIElementопределяетмножествомаршрутизируемыхсобытий, связанных с клавиатурой, мышью, стилусом. БольшинствособытийиспользуютBubble-стратегию. МногиеBubble-события имеют сопряжённое Tunnel-событие, которое генерируется перед Bubble-событием (Tunnel-событие отличает префикс Preview в названии).

  • Особенности прогнозирования спроса продовольственных и непродовольственных товаров
  • Весь мир: Записки велосипедиста 17 страница
  • Глава восьмая
  • Б) в технологиях Data Mining речь идет о программных продуктах, выявляющих закономерности в данных и оценивающих степень достоверности полученных закономерностей.
  • Функция распределения.
  • режима перевозки
  • Органы дознания. Начальник органа дознания. Дознаватель.
  • Пролог 30 страница
  • ПЕРЕДМОВА. Знання іноземних мов є важливою передумовою для налагодження особистих
  • Оформление выпускной квалификационной работы
  • II. ПРАКТИЧНА ЧАСТИНА. Розгляньте конкретну ситуацію і виконайте запропоновані завдання.
  • Страх в культуре
  • Dedication 4 страница
  • ID3 q|TCON(13)TIT2aяюRiptide (Vance Joy Cover) | vk.com/kidsmusichitTPE1­яюVazquez SoundsTYER яю2015WXXXvk.com/kidsmusichitAPIC8image/jpg яШяаJFIFHHяЫC 229 страница
  • Позиция сновидящего на пути осознания себя в Реальности
  • Read and translate the text.
  • Введение. Департамент образования города Москвы
  • Рождение трагедии, или Эллинство и пессимизм 19 страница
  • Авиньонское пленение пап
  • Ещё один рассказ вместо эпилога, он же пролог