Add listener for all element events in WPF

alex2k8 picture alex2k8 · Mar 11, 2009 · Viewed 7.6k times · Source

I would like to hook for all available element events in one call. Some thing like this:

elem.AddHandler(AnyRoutedEvent, (RoutedEventHandler)handler)

How can I do this?

Answer

Josh G picture Josh G · Mar 11, 2009

Try this to get all events on the Button type... You can substitute a different type.

RoutedEvent[] events = EventManager.GetRoutedEventsForOwner(typeof(Button));

foreach (RoutedEvent e in events)
   elem.AddHandler(e, handler);

You can also substitute the following to get ALL routed events for ALL types, but that would be quite a list!

RoutedEvent[] events = EventManager.GetRoutedEvents();