WPF - catch events even if they are already handled19 February 2010
As you may actually know WPF introduced the routed events. These last are no more specific to a single control but they are routed inside the tree of your controls.
If you want to stop an event, you can mark it as Handled. If so, the routing engine will stop to propage it. In fact this is just an illusion because the engine will only stop leveraging your handlers.
But sometimes, for example when you are using a control from third parties, you want to catch the events even if marked as handled. Here is the little piece of code to use :
anyUIElement.AddHandler( UIElement.MouseEnterEvent, (RoutedEventHandler)OnMouseEnterCallMeAlways, true );
This method can be called on any UIElement, in code only. The important part here is the Boolean (true) which tells the engine to call the handle even if the events is marked as handled.