различия между перенаправленными событиями и прикрепленными событиями и какие различия они делают? - PullRequest
3 голосов
/ 18 января 2012

Я просто перебираю концепции WPF, с которыми я столкнулся в связи с этими перенаправленными событиями, свойствами зависимостей и прикрепленными событиями.Я думаю, что я не в состоянии понять концепции, стоящие за ними, и почему они были вызваны вместо методов .net?

1 Ответ

13 голосов
/ 18 января 2012

Routed Events предоставляют возможность различным элементам управления в дереве элементов реагировать на события.

Например, если у нас есть Window, содержащий StackPanel, содержащий Button, и кто-то нажимает кнопку мыши на кнопке, события будут запускаться в следующем порядке:

PreviewMouseDown on Window
PreviewMouseDown on StackPanel
PreviewMouseDown on Button
MouseDown on Button
MouseDown on StackPanel
MouseDown on Window

Эти события «предварительного просмотра» используют поведение, называемое Tunneling. Нормальные события Bubble снова.

Если вы установите для свойства Handled EventArgs значение true, туннелирование и образование пузырьков прекратятся. Туннелирование или Bubbling называется Routing Strategy .

Это позволяет обрабатывать различные ситуации, например:

  • Запрещение любому дочернему элементу StackPanel получать события нажатия мыши. (Установите Handled на true на StackPanel.PreviewMouseDown).
  • Обработка нажатий клавиш в окне, которое не обрабатывалось никаким другим элементом управления (Window.KeyDown)

Я бы посоветовал не смотреть на Прикрепленные события , пока это не станет абсолютно необходимым. Сценарий для прикрепленных событий очень ограничен. Прикрепленные события также являются перенаправленными событиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...