TextBoxSelectAllOnGotFocusBehavior.cs 890 B

1234567891011121314151617181920212223242526272829
  1. using Avalonia.Controls;
  2. using Avalonia.Input;
  3. using Avalonia.Interactivity;
  4. using Avalonia.Xaml.Interactivity;
  5. namespace Avalonia.Xaml.Interactions.Custom;
  6. /// <summary>
  7. /// A behavior that allows to select all <see cref="TextBox"/> text on got focus event.
  8. /// </summary>
  9. public class TextBoxSelectAllOnGotFocusBehavior : StyledElementBehavior<TextBox>
  10. {
  11. /// <inheritdoc />
  12. protected override void OnAttachedToVisualTree()
  13. {
  14. AssociatedObject?.AddHandler(InputElement.GotFocusEvent, AssociatedObject_GotFocus, RoutingStrategies.Bubble);
  15. }
  16. /// <inheritdoc />
  17. protected override void OnDetachedFromVisualTree()
  18. {
  19. AssociatedObject?.RemoveHandler(InputElement.GotFocusEvent, AssociatedObject_GotFocus);
  20. }
  21. private void AssociatedObject_GotFocus(object? sender, GotFocusEventArgs e)
  22. {
  23. AssociatedObject?.SelectAll();
  24. }
  25. }