1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using System;
- using System.Windows;
- namespace Hardcodet.Wpf.TaskbarNotification
- {
- /// <summary>
- /// Helper class used by routed events of the
- /// <see cref="TaskbarIcon"/> class.
- /// </summary>
- internal static class RoutedEventHelper
- {
- #region RoutedEvent Helper Methods
- /// <summary>
- /// A static helper method to raise a routed event on a target UIElement or ContentElement.
- /// </summary>
- /// <param name="target">UIElement or ContentElement on which to raise the event</param>
- /// <param name="args">RoutedEventArgs to use when raising the event</param>
- internal static void RaiseEvent(DependencyObject target, RoutedEventArgs args)
- {
- var uiElement = target as UIElement;
- if (uiElement != null)
- {
- uiElement.RaiseEvent(args);
- }
- else
- {
- var contentElement = target as ContentElement;
- if (contentElement != null)
- {
- contentElement.RaiseEvent(args);
- }
- }
- }
- /// <summary>
- /// A static helper method that adds a handler for a routed event
- /// to a target UIElement or ContentElement.
- /// </summary>
- /// <param name="element">UIElement or ContentElement that listens to the event</param>
- /// <param name="routedEvent">Event that will be handled</param>
- /// <param name="handler">Event handler to be added</param>
- internal static void AddHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
- {
- var uie = element as UIElement;
- if (element != null && uie != null)
- {
- uie.AddHandler(routedEvent, handler);
- }
- else
- {
- var ce = element as ContentElement;
- if (element != null && ce != null)
- {
- ce.AddHandler(routedEvent, handler);
- }
- }
- }
- /// <summary>
- /// A static helper method that removes a handler for a routed event
- /// from a target UIElement or ContentElement.
- /// </summary>
- /// <param name="element">UIElement or ContentElement that listens to the event</param>
- /// <param name="routedEvent">Event that will no longer be handled</param>
- /// <param name="handler">Event handler to be removed</param>
- internal static void RemoveHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
- {
- var uie = element as UIElement;
- if (uie != null)
- {
- uie.RemoveHandler(routedEvent, handler);
- }
- else
- {
- var ce = element as ContentElement;
- if (ce != null)
- {
- ce.RemoveHandler(routedEvent, handler);
- }
- }
- }
- #endregion
- }
- }
|