MainView.axaml.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Collections.Generic;
  2. using System.Threading.Tasks;
  3. using Avalonia;
  4. using Avalonia.Controls;
  5. using Avalonia.Interactivity;
  6. using Avalonia.Markup.Xaml;
  7. namespace NativeEmbedSample;
  8. public class MainView : UserControl
  9. {
  10. public MainView()
  11. {
  12. AvaloniaXamlLoader.Load(this);
  13. }
  14. public async void ShowPopupDelay(object sender, RoutedEventArgs args)
  15. {
  16. await Task.Delay(3000);
  17. ShowPopup(sender, args);
  18. }
  19. public void ShowPopup(object sender, RoutedEventArgs args)
  20. {
  21. new ContextMenu()
  22. {
  23. Items = new List<MenuItem>
  24. {
  25. new MenuItem() { Header = "Test" }, new MenuItem() { Header = "Test" }
  26. }
  27. }.Open((Control)sender);
  28. }
  29. protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
  30. {
  31. base.OnPropertyChanged(change);
  32. if (change.Property == BoundsProperty)
  33. {
  34. var isMobile = change.GetNewValue<Rect>().Width < 1200;
  35. this.Find<DockPanel>("FirstPanel")!.Classes.Set("mobile", isMobile);
  36. this.Find<DockPanel>("SecondPanel")!.Classes.Set("mobile", isMobile);
  37. }
  38. }
  39. }