1
0

MainWindow.xaml.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Runtime.InteropServices;
  3. using Avalonia;
  4. using Avalonia.Controls;
  5. using Avalonia.Controls.Notifications;
  6. using Avalonia.Input;
  7. using Avalonia.Markup.Xaml;
  8. using ControlCatalog.ViewModels;
  9. namespace ControlCatalog
  10. {
  11. public class MainWindow : Window
  12. {
  13. private NativeMenu? _recentMenu;
  14. public MainWindow()
  15. {
  16. this.InitializeComponent();
  17. _recentMenu = ((NativeMenu.GetMenu(this)?.Items[0] as NativeMenuItem)?.Menu?.Items[2] as NativeMenuItem)?.Menu;
  18. }
  19. public static string MenuQuitHeader => RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ? "Quit Avalonia" : "E_xit";
  20. public static KeyGesture MenuQuitGesture => RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ?
  21. new KeyGesture(Key.Q, KeyModifiers.Meta) :
  22. new KeyGesture(Key.F4, KeyModifiers.Alt);
  23. public void OnOpenClicked(object sender, EventArgs args)
  24. {
  25. _recentMenu?.Items.Insert(0, new NativeMenuItem("Item " + (_recentMenu.Items.Count + 1)));
  26. }
  27. public void OnCloseClicked(object sender, EventArgs args)
  28. {
  29. Close();
  30. }
  31. private void InitializeComponent()
  32. {
  33. AvaloniaXamlLoader.Load(this);
  34. }
  35. }
  36. }