MainWindow.axaml.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using Avalonia;
  3. using Avalonia.Controls;
  4. using Avalonia.Interactivity;
  5. using Avalonia.Markup.Xaml;
  6. namespace IntegrationTestApp
  7. {
  8. public class MainWindow : Window
  9. {
  10. public MainWindow()
  11. {
  12. InitializeComponent();
  13. InitializeViewMenu();
  14. this.AttachDevTools();
  15. AddHandler(Button.ClickEvent, OnButtonClick);
  16. }
  17. private void InitializeComponent()
  18. {
  19. AvaloniaXamlLoader.Load(this);
  20. }
  21. private void InitializeViewMenu()
  22. {
  23. var mainTabs = this.FindControl<TabControl>("MainTabs");
  24. var viewMenu = (NativeMenuItem)NativeMenu.GetMenu(this).Items[1];
  25. foreach (TabItem tabItem in mainTabs.Items)
  26. {
  27. var menuItem = new NativeMenuItem
  28. {
  29. Header = (string)tabItem.Header!,
  30. IsChecked = tabItem.IsSelected,
  31. ToggleType = NativeMenuItemToggleType.Radio,
  32. };
  33. menuItem.Click += (s, e) => tabItem.IsSelected = true;
  34. viewMenu.Menu.Items.Add(menuItem);
  35. }
  36. }
  37. private void MenuClicked(object? sender, RoutedEventArgs e)
  38. {
  39. var clickedMenuItemTextBlock = this.FindControl<TextBlock>("ClickedMenuItem");
  40. clickedMenuItemTextBlock.Text = ((MenuItem)sender!).Header.ToString();
  41. }
  42. private void OnButtonClick(object? sender, RoutedEventArgs e)
  43. {
  44. var source = e.Source as Button;
  45. if (source?.Name == "ComboBoxSelectionClear")
  46. this.FindControl<ComboBox>("ComboBox").SelectedIndex = -1;
  47. if (source?.Name == "ComboBoxSelectFirst")
  48. this.FindControl<ComboBox>("ComboBox").SelectedIndex = 0;
  49. }
  50. }
  51. }