root / trunk / NotifyIconWpf / RoutedEventHelper.cs @ 9bae55d1
History | View | Annotate | Download (2.5 kB)
1 |
using System; |
---|---|
2 |
using System.Windows; |
3 |
|
4 |
namespace Hardcodet.Wpf.TaskbarNotification |
5 |
{ |
6 |
/// <summary> |
7 |
/// Helper class used by routed events of the |
8 |
/// <see cref="TaskbarIcon"/> class. |
9 |
/// </summary> |
10 |
internal static class RoutedEventHelper |
11 |
{ |
12 |
#region RoutedEvent Helper Methods |
13 |
|
14 |
/// <summary> |
15 |
/// A static helper method to raise a routed event on a target UIElement or ContentElement. |
16 |
/// </summary> |
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) |
20 |
{ |
21 |
if (target is UIElement) |
22 |
{ |
23 |
(target as UIElement).RaiseEvent(args); |
24 |
} |
25 |
else if (target is ContentElement) |
26 |
{ |
27 |
(target as ContentElement).RaiseEvent(args); |
28 |
} |
29 |
} |
30 |
|
31 |
/// <summary> |
32 |
/// A static helper method that adds a handler for a routed event |
33 |
/// to a target UIElement or ContentElement. |
34 |
/// </summary> |
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) |
39 |
{ |
40 |
UIElement uie = element as UIElement; |
41 |
if (uie != null) |
42 |
{ |
43 |
uie.AddHandler(routedEvent, handler); |
44 |
} |
45 |
else |
46 |
{ |
47 |
ContentElement ce = element as ContentElement; |
48 |
if (ce != null) |
49 |
{ |
50 |
ce.AddHandler(routedEvent, handler); |
51 |
} |
52 |
} |
53 |
} |
54 |
|
55 |
/// <summary> |
56 |
/// A static helper method that removes a handler for a routed event |
57 |
/// from a target UIElement or ContentElement. |
58 |
/// </summary> |
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) |
63 |
{ |
64 |
UIElement uie = element as UIElement; |
65 |
if (uie != null) |
66 |
{ |
67 |
uie.RemoveHandler(routedEvent, handler); |
68 |
} |
69 |
else |
70 |
{ |
71 |
ContentElement ce = element as ContentElement; |
72 |
if (ce != null) |
73 |
{ |
74 |
ce.RemoveHandler(routedEvent, handler); |
75 |
} |
76 |
} |
77 |
} |
78 |
|
79 |
#endregion |
80 |
} |
81 |
} |