MainWindow.xaml.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using SourceChord.FluentWPF;
  2. using System.Linq;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using System.Windows.Data;
  6. using System.Windows.Media;
  7. namespace Phihong_EVSE_UI_Tool
  8. {
  9. /// <summary>
  10. /// MainWindow.xaml 的互動邏輯
  11. /// </summary>
  12. public partial class MainWindow : Window
  13. {
  14. private Properties.Settings mySettings = Properties.Settings.Default;
  15. private ListViewItem lastSelectedItem = null;
  16. private InitialIdleUC ucInitialIdle = new InitialIdleUC();
  17. private AuthenticationUC ucAuthentaction = new AuthenticationUC();
  18. private PlugChargingUC ucPlugCharging = new PlugChargingUC();
  19. private MaintenanceUC ucMaintenance = new MaintenanceUC();
  20. private BuildIco ucBuildIco = new BuildIco();
  21. private ModifyIco ucModifyIco = new ModifyIco();
  22. private SaveSdCard ucSaveSdCard = new SaveSdCard();
  23. public MainWindow()
  24. {
  25. InitializeComponent();
  26. //this.MaxHeight = SystemParameters.WorkArea.Height + 12.5;
  27. this.MinWidth = 900;
  28. this.MinHeight = 600;
  29. uxInitListViewItem.IsSelected = true;
  30. uxInitListViewItem.Focus();
  31. if (!mySettings.Mode.Equals("54088"))
  32. {
  33. uxBuildListViewItem.Visibility = Visibility.Collapsed;
  34. uxSaveMenuTextBlock.Margin = new Thickness(17, 433, 0, 0);
  35. }
  36. Utility.ChangedFiles = Utility.ChangedFiles.ToDictionary(p => p.Key, p => false);
  37. }
  38. private void uxMenuListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
  39. {
  40. if (uxMenuListView.SelectedItem != null)
  41. {
  42. if (lastSelectedItem != null)
  43. {
  44. lastSelectedItem.Foreground = new SolidColorBrush(Colors.Black);
  45. lastSelectedItem.Background = null;
  46. }
  47. ListViewItem item = uxMenuListView.SelectedItem as ListViewItem;
  48. Binding myBinding = new Binding("ImmersiveSystemAccentBrush");
  49. myBinding.Source = new AccentColors();
  50. item.SetBinding(ListViewItem.ForegroundProperty, myBinding);
  51. item.Background = new SolidColorBrush(Color.FromArgb(40, 0, 0, 0));
  52. uxTitleTextBlock.Text = (item.Content as StackPanel).Children.OfType<TextBlock>().First().Text;
  53. uxContentGrid.Children.Clear();
  54. switch (item.Name)
  55. {
  56. case "uxInitListViewItem":
  57. uxContentGrid.Children.Add(ucInitialIdle);
  58. uxContentGrid.Children.OfType<InitialIdleUC>().First().uxContentScrollViewer.ScrollToTop();
  59. break;
  60. case "uxAuthListViewItem":
  61. uxContentGrid.Children.Add(ucAuthentaction);
  62. uxContentGrid.Children.OfType<AuthenticationUC>().First().uxContentScrollViewer.ScrollToTop();
  63. break;
  64. case "uxChargingListViewItem":
  65. uxContentGrid.Children.Add(ucPlugCharging);
  66. uxContentGrid.Children.OfType<PlugChargingUC>().First().uxContentScrollViewer.ScrollToTop();
  67. break;
  68. case "uxMaintainListViewItem":
  69. uxContentGrid.Children.Add(ucMaintenance);
  70. uxContentGrid.Children.OfType<MaintenanceUC>().First().uxContentScrollViewer.ScrollToTop();
  71. break;
  72. case "uxBuildListViewItem":
  73. uxContentGrid.Children.Add(ucBuildIco);
  74. uxContentGrid.Children.OfType<BuildIco>().First().uxContentScrollViewer.ScrollToTop();
  75. break;
  76. case "uxModifyListViewItem":
  77. uxContentGrid.Children.Add(ucModifyIco);
  78. uxContentGrid.Children.OfType<ModifyIco>().First().uxContentScrollViewer.ScrollToTop();
  79. break;
  80. case "uxSaveListViewItem":
  81. uxContentGrid.Children.Add(ucSaveSdCard);
  82. uxContentGrid.Children.OfType<SaveSdCard>().First().uxContentScrollViewer.ScrollToTop();
  83. break;
  84. default:
  85. break;
  86. }
  87. lastSelectedItem = item;
  88. }
  89. }
  90. }
  91. public class DpiDecorator : Decorator
  92. {
  93. public DpiDecorator()
  94. {
  95. this.Loaded += (s, e) =>
  96. {
  97. Matrix m = PresentationSource.FromVisual(this).CompositionTarget.TransformToDevice;
  98. ScaleTransform dpiTransform = new ScaleTransform(1.25 / m.M11, 1.25 / m.M22);
  99. if (dpiTransform.CanFreeze)
  100. {
  101. dpiTransform.Freeze();
  102. }
  103. this.LayoutTransform = dpiTransform;
  104. };
  105. }
  106. }
  107. }