4 namespace Hardcodet.Wpf.TaskbarNotification
7 /// Helper class used by routed events of the
8 /// <see cref="TaskbarIcon"/> class.
10 internal static class RoutedEventHelper
12 #region RoutedEvent Helper Methods
15 /// A static helper method to raise a routed event on a target UIElement or ContentElement.
17 /// <param name="target">UIElement or ContentElement on which to raise the event</param>
18 /// <param name="args">RoutedEventArgs to use when raising the event</param>
19 internal static void RaiseEvent(DependencyObject target, RoutedEventArgs args)
21 if (target is UIElement)
23 (target as UIElement).RaiseEvent(args);
25 else if (target is ContentElement)
27 (target as ContentElement).RaiseEvent(args);
32 /// A static helper method that adds a handler for a routed event
33 /// to a target UIElement or ContentElement.
35 /// <param name="element">UIElement or ContentElement that listens to the event</param>
36 /// <param name="routedEvent">Event that will be handled</param>
37 /// <param name="handler">Event handler to be added</param>
38 internal static void AddHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
40 UIElement uie = element as UIElement;
43 uie.AddHandler(routedEvent, handler);
47 ContentElement ce = element as ContentElement;
50 ce.AddHandler(routedEvent, handler);
56 /// A static helper method that removes a handler for a routed event
57 /// from a target UIElement or ContentElement.
59 /// <param name="element">UIElement or ContentElement that listens to the event</param>
60 /// <param name="routedEvent">Event that will no longer be handled</param>
61 /// <param name="handler">Event handler to be removed</param>
62 internal static void RemoveHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
64 UIElement uie = element as UIElement;
67 uie.RemoveHandler(routedEvent, handler);
71 ContentElement ce = element as ContentElement;
74 ce.RemoveHandler(routedEvent, handler);