Files
HandyControl/Net40/HandyControl_Net40/Interactivity/RoutedEventTrigger.cs
T
2019-01-21 11:12:38 +08:00

29 lines
955 B
C#

using System;
using System.Windows;
namespace HandyControl.Interactivity
{
public class RoutedEventTrigger : EventTriggerBase<DependencyObject>
{
public RoutedEvent RoutedEvent { get; set; }
protected override void OnAttached()
{
var behavior = AssociatedObject as Behavior;
var associatedElement = AssociatedObject as FrameworkElement;
if (behavior != null) associatedElement = ((IAttachedObject)behavior).AssociatedObject as FrameworkElement;
if (associatedElement == null) throw new ArgumentException();
if (RoutedEvent != null) associatedElement.AddHandler(RoutedEvent, new RoutedEventHandler(OnRoutedEvent));
}
private void OnRoutedEvent(object sender, RoutedEventArgs args)
{
OnEvent(args);
}
protected override string GetEventName()
{
return RoutedEvent.Name;
}
}
}