TextInputMethodClientRequestedEventBehavior.cs 1.4 KB

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