WPF: Routing Events


The concept of Routed Events comes into the picture when we want to handle an event therefore, the new infrastructure provided by WPF are Routed events which allows events to tunnel down the visual tree to the target element, or bubble up to the root element. Routed events normally appear as pair. The first is a tunneling event called PreviewMouseDown and the second is the bubbling called MouseDown. They don't stop routing if the reach an event handler. To stop routing then you have to set e.Handled = true;

ROUTED EVENTS:


Definition: A routed event is a type of event that can invoke handlers on multiple listeners in an element tree, rather than just on the object that raised the event.

Types of Routing Events:

Tunneling:
The event is raised on the root element and navigates down to the visual tree until it reaches the source element or until the tunneling is stopped by marking the event as handeld. By naming convention it is called Preview... and appears before corresponding bubbling event.
 
Bubbling: The event is raised on the source element and navigates up to the visual tree until it reaches the root element or until the bubbling is stopped by marking the event as handled. The bubbling event is raised after the tunneling event.

Direct: The event is raised on the source element and must be handled on the source element itself. This behavior is the same as normal .NET events.