mirror of
https://github.com/ckaczor/wpf-notifyicon.git
synced 2026-01-14 09:35:45 -05:00
81 lines
2.9 KiB
C#
81 lines
2.9 KiB
C#
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)
|
|
{
|
|
if (target is UIElement)
|
|
{
|
|
(target as UIElement).RaiseEvent(args);
|
|
}
|
|
else if (target is ContentElement)
|
|
{
|
|
(target as 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)
|
|
{
|
|
UIElement uie = element as UIElement;
|
|
if (uie != null)
|
|
{
|
|
uie.AddHandler(routedEvent, handler);
|
|
}
|
|
else
|
|
{
|
|
ContentElement ce = element as ContentElement;
|
|
if (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)
|
|
{
|
|
UIElement uie = element as UIElement;
|
|
if (uie != null)
|
|
{
|
|
uie.RemoveHandler(routedEvent, handler);
|
|
}
|
|
else
|
|
{
|
|
ContentElement ce = element as ContentElement;
|
|
if (ce != null)
|
|
{
|
|
ce.RemoveHandler(routedEvent, handler);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |