Основы проектирования интерфейсов с использованием технологии Windows Presentation Foundation. Шамшев Ан. Б. - 121 стр.

UptoLike

Составители: 

121
Туннельные события (tunneling event) перемещаются вниз по
иерархии. Они дают возможность предварительно просматри-
вать и, возможно, останавливать событие до того, как оно
дойдет до подходящего элемента управления. Например, Pre-
viewKeyDown позволяет прервать нажатие клавиши сначала
на уровне окна, а затем в более специфических контейнерах,
до тех пор, пока не будет достигнут элемент, который имел
фокус ввода в момент нажатия клавиши.
Поскольку события MouseUp и MouseDown являются подни-
мающимися событиями, теперь можно определить, что произойдет в
примере с меткой. При щелчке на лице с улыбкой событие
MouseDown возникнет в следующем порядке:
1. Image.MouseDown;
2. StackPanel.MouseDown;
3. Label.MouseDown.
После того как событие MouseDown возникнет в метке, оно
пройдет до следующего элемента управления (которым в этом случае
является сетка Grid, разбивающая вмещающее окно), а затем до его
родителя (окно). Окно находится на самом верху иерархии и в самом
конце в последовательности поднятия события. Здесь есть последняя
возможность обработать поднимающееся событие, такое как
MouseDown. Если пользователь отпускает кнопку мыши, событие
MouseUp возникает в такой же последовательности.
Обрабатывать поднимающиеся события можно не только в од-
ном месте. В действительности, события MouseDown и MouseUp
можно обрабатывать на любом уровне. Однако, как правило, для этой
задачи выбирается наиболее подходящий на данный момент уровень.
5.2.1. Класс RoutedEventArgs
Когда обрабатывается поднимающееся событие, параметр от-
правителя содержит ссылку на последнее звено в цепочке. Например,