PointerExitedEventBehavior.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Avalonia.Input;
  2. using Avalonia.Interactivity;
  3. namespace Avalonia.Xaml.Interactions.Events;
  4. /// <summary>
  5. ///
  6. /// </summary>
  7. public abstract class PointerExitedEventBehavior : InteractiveBehaviorBase
  8. {
  9. static PointerExitedEventBehavior()
  10. {
  11. RoutingStrategiesProperty.OverrideMetadata<PointerExitedEventBehavior>(
  12. new StyledPropertyMetadata<RoutingStrategies>(
  13. defaultValue: RoutingStrategies.Direct));
  14. }
  15. /// <inheritdoc />
  16. protected override void OnAttachedToVisualTree()
  17. {
  18. AssociatedObject?.AddHandler(InputElement.PointerExitedEvent, PointerLeave, RoutingStrategies);
  19. }
  20. /// <inheritdoc />
  21. protected override void OnDetachedFromVisualTree()
  22. {
  23. AssociatedObject?.RemoveHandler(InputElement.PointerExitedEvent, PointerLeave);
  24. }
  25. private void PointerLeave(object? sender, PointerEventArgs e)
  26. {
  27. OnPointerLeave(sender, e);
  28. }
  29. /// <summary>
  30. ///
  31. /// </summary>
  32. /// <param name="sender"></param>
  33. /// <param name="e"></param>
  34. protected virtual void OnPointerLeave(object? sender, PointerEventArgs e)
  35. {
  36. }
  37. }