Statistics
| Branch: | Revision:

root / trunk / NotifyIconWpf / RoutedEventHelper.cs @ 049333d2

History | View | Annotate | Download (2.5 kB)

1 9bae55d1 Panagiotis Kanavos
using System;
2 9bae55d1 Panagiotis Kanavos
using System.Windows;
3 9bae55d1 Panagiotis Kanavos
4 9bae55d1 Panagiotis Kanavos
namespace Hardcodet.Wpf.TaskbarNotification
5 9bae55d1 Panagiotis Kanavos
{
6 9bae55d1 Panagiotis Kanavos
  /// <summary>
7 9bae55d1 Panagiotis Kanavos
  /// Helper class used by routed events of the
8 9bae55d1 Panagiotis Kanavos
  /// <see cref="TaskbarIcon"/> class.
9 9bae55d1 Panagiotis Kanavos
  /// </summary>
10 9bae55d1 Panagiotis Kanavos
  internal static class RoutedEventHelper
11 9bae55d1 Panagiotis Kanavos
  {
12 9bae55d1 Panagiotis Kanavos
    #region RoutedEvent Helper Methods
13 9bae55d1 Panagiotis Kanavos
14 9bae55d1 Panagiotis Kanavos
    /// <summary>
15 9bae55d1 Panagiotis Kanavos
    /// A static helper method to raise a routed event on a target UIElement or ContentElement.
16 9bae55d1 Panagiotis Kanavos
    /// </summary>
17 9bae55d1 Panagiotis Kanavos
    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
18 9bae55d1 Panagiotis Kanavos
    /// <param name="args">RoutedEventArgs to use when raising the event</param>
19 9bae55d1 Panagiotis Kanavos
    internal static void RaiseEvent(DependencyObject target, RoutedEventArgs args)
20 9bae55d1 Panagiotis Kanavos
    {
21 9bae55d1 Panagiotis Kanavos
      if (target is UIElement)
22 9bae55d1 Panagiotis Kanavos
      {
23 9bae55d1 Panagiotis Kanavos
        (target as UIElement).RaiseEvent(args);
24 9bae55d1 Panagiotis Kanavos
      }
25 9bae55d1 Panagiotis Kanavos
      else if (target is ContentElement)
26 9bae55d1 Panagiotis Kanavos
      {
27 9bae55d1 Panagiotis Kanavos
        (target as ContentElement).RaiseEvent(args);
28 9bae55d1 Panagiotis Kanavos
      }
29 9bae55d1 Panagiotis Kanavos
    }
30 9bae55d1 Panagiotis Kanavos
31 9bae55d1 Panagiotis Kanavos
    /// <summary>
32 9bae55d1 Panagiotis Kanavos
    /// A static helper method that adds a handler for a routed event 
33 9bae55d1 Panagiotis Kanavos
    /// to a target UIElement or ContentElement.
34 9bae55d1 Panagiotis Kanavos
    /// </summary>
35 9bae55d1 Panagiotis Kanavos
    /// <param name="element">UIElement or ContentElement that listens to the event</param>
36 9bae55d1 Panagiotis Kanavos
    /// <param name="routedEvent">Event that will be handled</param>
37 9bae55d1 Panagiotis Kanavos
    /// <param name="handler">Event handler to be added</param>
38 9bae55d1 Panagiotis Kanavos
    internal static void AddHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
39 9bae55d1 Panagiotis Kanavos
    {
40 9bae55d1 Panagiotis Kanavos
      UIElement uie = element as UIElement;
41 9bae55d1 Panagiotis Kanavos
      if (uie != null)
42 9bae55d1 Panagiotis Kanavos
      {
43 9bae55d1 Panagiotis Kanavos
        uie.AddHandler(routedEvent, handler);
44 9bae55d1 Panagiotis Kanavos
      }
45 9bae55d1 Panagiotis Kanavos
      else
46 9bae55d1 Panagiotis Kanavos
      {
47 9bae55d1 Panagiotis Kanavos
        ContentElement ce = element as ContentElement;
48 9bae55d1 Panagiotis Kanavos
        if (ce != null)
49 9bae55d1 Panagiotis Kanavos
        {
50 9bae55d1 Panagiotis Kanavos
          ce.AddHandler(routedEvent, handler);
51 9bae55d1 Panagiotis Kanavos
        }
52 9bae55d1 Panagiotis Kanavos
      }
53 9bae55d1 Panagiotis Kanavos
    }
54 9bae55d1 Panagiotis Kanavos
55 9bae55d1 Panagiotis Kanavos
    /// <summary>
56 9bae55d1 Panagiotis Kanavos
    /// A static helper method that removes a handler for a routed event 
57 9bae55d1 Panagiotis Kanavos
    /// from a target UIElement or ContentElement.
58 9bae55d1 Panagiotis Kanavos
    /// </summary>
59 9bae55d1 Panagiotis Kanavos
    /// <param name="element">UIElement or ContentElement that listens to the event</param>
60 9bae55d1 Panagiotis Kanavos
    /// <param name="routedEvent">Event that will no longer be handled</param>
61 9bae55d1 Panagiotis Kanavos
    /// <param name="handler">Event handler to be removed</param>
62 9bae55d1 Panagiotis Kanavos
    internal static void RemoveHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
63 9bae55d1 Panagiotis Kanavos
    {
64 9bae55d1 Panagiotis Kanavos
      UIElement uie = element as UIElement;
65 9bae55d1 Panagiotis Kanavos
      if (uie != null)
66 9bae55d1 Panagiotis Kanavos
      {
67 9bae55d1 Panagiotis Kanavos
        uie.RemoveHandler(routedEvent, handler);
68 9bae55d1 Panagiotis Kanavos
      }
69 9bae55d1 Panagiotis Kanavos
      else
70 9bae55d1 Panagiotis Kanavos
      {
71 9bae55d1 Panagiotis Kanavos
        ContentElement ce = element as ContentElement;
72 9bae55d1 Panagiotis Kanavos
        if (ce != null)
73 9bae55d1 Panagiotis Kanavos
        {
74 9bae55d1 Panagiotis Kanavos
          ce.RemoveHandler(routedEvent, handler);
75 9bae55d1 Panagiotis Kanavos
        }
76 9bae55d1 Panagiotis Kanavos
      }
77 9bae55d1 Panagiotis Kanavos
    }
78 9bae55d1 Panagiotis Kanavos
79 9bae55d1 Panagiotis Kanavos
    #endregion
80 9bae55d1 Panagiotis Kanavos
  }
81 9bae55d1 Panagiotis Kanavos
}