ShellView.xaml.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using OpenSEMI.Ctrlib.Window;
  2. using Prism.Regions;
  3. using System.Collections.Generic;
  4. using System.Windows;
  5. using Venus_Themes.CustomControls;
  6. using Venus_UI.Models;
  7. using Venus_UI.Themes.Attach;
  8. using Venus_Unity;
  9. using System.Linq;
  10. using System.Threading;
  11. namespace Venus_UI.Views
  12. {
  13. /// <summary>
  14. /// ShellView.xaml 的交互逻辑
  15. /// </summary>
  16. public partial class ShellView : CustomWnd
  17. {
  18. IRegionManager m_regionManager;
  19. IRegionNavigationService m_regionNavigationService;
  20. List<Menu> menus;
  21. public ShellView(IRegionManager regionManager, IRegionNavigationService regionNavigationService)
  22. {
  23. InitializeComponent();
  24. m_regionManager = regionManager;
  25. m_regionNavigationService = regionNavigationService;
  26. m_regionManager.RegisterViewWithRegion("MainRegion", typeof(Venus_MainPages.Views.OverView));
  27. m_regionManager.RegisterViewWithRegion("TopRegion", typeof(Venus_MainPages.Views.TopView));
  28. }
  29. private void CustomWnd_Loaded(object sender, RoutedEventArgs e)
  30. {
  31. menus = SerializeHelper.Instance.ReadFromJsonFile<List<Menu>>("Config/Menu.json");
  32. for (int i = 0; i < menus.Count; i++)
  33. {
  34. var aduRadioButtonIcon = new AduRadioButtonIcon();
  35. if (i == 0)
  36. {
  37. aduRadioButtonIcon.IsChecked = true;
  38. }
  39. //aduRadioButtonIcon.Content = this.FindResource(menus[i].ID);
  40. aduRadioButtonIcon.SetResourceReference(ContentProperty, menus[i].ID);
  41. aduRadioButtonIcon.Tag = menus[i].ID;
  42. aduRadioButtonIcon.SetValue(IconElement.PathDataProperty, this.FindResource("Icon_" + menus[i].ID));
  43. aduRadioButtonIcon.Checked += AduRadioButtonIcon_Checked;
  44. Bottom_Frame.Children.Add(aduRadioButtonIcon);
  45. }
  46. }
  47. private void AduRadioButtonIcon_Checked(object sender, RoutedEventArgs e)
  48. {
  49. m_regionManager.RequestNavigate("MainRegion", (sender as AduRadioButtonIcon).Tag.ToString());
  50. }
  51. }
  52. }