KeyUpEventBehavior.cs 1.1 KB

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