AdornerLayerPage.xaml.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Avalonia.Controls;
  2. using Avalonia.Controls.Primitives;
  3. using Avalonia.Interactivity;
  4. using Avalonia.Markup.Xaml;
  5. namespace ControlCatalog.Pages
  6. {
  7. public class AdornerLayerPage : UserControl
  8. {
  9. private Control? _adorner;
  10. public AdornerLayerPage()
  11. {
  12. this.InitializeComponent();
  13. }
  14. private void InitializeComponent()
  15. {
  16. AvaloniaXamlLoader.Load(this);
  17. }
  18. private void RemoveAdorner_OnClick(object? sender, RoutedEventArgs e)
  19. {
  20. var adornerButton = this.FindControl<Button>("AdornerButton");
  21. if (adornerButton is { })
  22. {
  23. var adorner = AdornerLayer.GetAdorner(adornerButton);
  24. if (adorner is { })
  25. {
  26. _adorner = adorner;
  27. }
  28. AdornerLayer.SetAdorner(adornerButton, null);
  29. }
  30. }
  31. private void AddAdorner_OnClick(object? sender, RoutedEventArgs e)
  32. {
  33. var adornerButton = this.FindControl<Button>("AdornerButton");
  34. if (adornerButton is { })
  35. {
  36. if (_adorner is { })
  37. {
  38. AdornerLayer.SetAdorner(adornerButton, _adorner);
  39. }
  40. }
  41. }
  42. }
  43. }