Sic.Framework/MECF.Framework.Common/Hardcodet/Wpf/TaskbarNotification/RoutedEventHelper.cs

48 lines
1.1 KiB
C#
Raw Normal View History

2023-04-13 11:51:03 +08:00
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);
}
}
}
}