48 lines
1.1 KiB
C#
48 lines
1.1 KiB
C#
|
using System;
|
||
|
using System.Windows;
|
||
|
|
||
|
namespace Hardcodet.Wpf.TaskbarNotification
|
||
|
{
|
||
|
internal static class RoutedEventHelper
|
||
|
{
|
||
|
internal static void RaiseEvent(DependencyObject target, RoutedEventArgs args)
|
||
|
{
|
||
|
if (target is UIElement uIElement)
|
||
|
{
|
||
|
uIElement.RaiseEvent(args);
|
||
|
}
|
||
|
else if (target is ContentElement contentElement)
|
||
|
{
|
||
|
contentElement.RaiseEvent(args);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
internal static void AddHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
|
||
|
{
|
||
|
UIElement uIElement = element as UIElement;
|
||
|
if (element != null && uIElement != null)
|
||
|
{
|
||
|
uIElement.AddHandler(routedEvent, handler);
|
||
|
return;
|
||
|
}
|
||
|
ContentElement contentElement = element as ContentElement;
|
||
|
if (element != null)
|
||
|
{
|
||
|
contentElement?.AddHandler(routedEvent, handler);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
internal static void RemoveHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
|
||
|
{
|
||
|
if (element is UIElement uIElement)
|
||
|
{
|
||
|
uIElement.RemoveHandler(routedEvent, handler);
|
||
|
}
|
||
|
else if (element is ContentElement contentElement)
|
||
|
{
|
||
|
contentElement.RemoveHandler(routedEvent, handler);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|