RoutedEventTrigger.cs 875 B

12345678910111213141516171819202122232425262728
  1. using System;
  2. using System.Windows;
  3. namespace HandyControl.Interactivity;
  4. public class RoutedEventTrigger : EventTriggerBase<DependencyObject>
  5. {
  6. public RoutedEvent RoutedEvent { get; set; }
  7. protected override void OnAttached()
  8. {
  9. var behavior = AssociatedObject as Behavior;
  10. var associatedElement = AssociatedObject as FrameworkElement;
  11. if (behavior != null) associatedElement = ((IAttachedObject) behavior).AssociatedObject as FrameworkElement;
  12. if (associatedElement == null) throw new ArgumentException();
  13. if (RoutedEvent != null) associatedElement.AddHandler(RoutedEvent, new RoutedEventHandler(OnRoutedEvent));
  14. }
  15. private void OnRoutedEvent(object sender, RoutedEventArgs args)
  16. {
  17. OnEvent(args);
  18. }
  19. protected override string GetEventName()
  20. {
  21. return RoutedEvent.Name;
  22. }
  23. }