InitialIdleUC.xaml.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. using Microsoft.WindowsAPICodePack.Dialogs;
  2. using System;
  3. using System.IO;
  4. using System.Windows;
  5. using System.Windows.Controls;
  6. using System.Windows.Media.Imaging;
  7. namespace Phihong_EVSE_UI_Tool
  8. {
  9. /// <summary>
  10. /// InitialIdleUC.xaml 的互動邏輯
  11. /// </summary>
  12. public partial class InitialIdleUC : UserControl
  13. {
  14. private Properties.Settings mySettings = Properties.Settings.Default;
  15. private string initCustomImgPath;
  16. private string idleCustomImgPath;
  17. public InitialIdleUC()
  18. {
  19. InitializeComponent();
  20. initCustomImgPath = mySettings.InitialCustomImgPath;
  21. uxInitDefaultRadioButton.IsChecked = mySettings.IsInitialDefault;
  22. uxInitCustomRadioButton.IsChecked = !mySettings.IsInitialDefault;
  23. uxInitExploreTextBox.Text = mySettings.InitialCustomImgPath_org;
  24. idleCustomImgPath = mySettings.IdleCustomImgPath;
  25. uxIdleDefaultRadioButton.IsChecked = mySettings.IsIdleDefault;
  26. uxIdleCustomRadioButton.IsChecked = !mySettings.IsIdleDefault;
  27. uxIdleExploreTextBox.Text = mySettings.IdleCustomImgPath_org;
  28. }
  29. private void uxDefaultRadioButton_Checked(object sender, RoutedEventArgs e)
  30. {
  31. Uri srcPath;
  32. RadioButton rb = e.Source as RadioButton;
  33. if (rb is null)
  34. {
  35. return;
  36. }
  37. switch (rb.Tag.ToString())
  38. {
  39. case "Initial":
  40. srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_INITIAL), UriKind.Relative);
  41. uxInitImage.Source = new BitmapImage(srcPath);
  42. Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_INITIAL));
  43. Utility.ChangedFiles[Utility.BG_INITIAL] = true;
  44. mySettings.IsInitialDefault = true;
  45. break;
  46. case "Idle":
  47. srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_IDLE), UriKind.Relative);
  48. uxIdleImage.Source = new BitmapImage(srcPath);
  49. Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_IDLE));
  50. Utility.ChangedFiles[Utility.BG_IDLE] = true;
  51. mySettings.IsIdleDefault = true;
  52. break;
  53. default:
  54. return;
  55. }
  56. mySettings.Save();
  57. }
  58. private void uxCustomRadioButton_Checked(object sender, RoutedEventArgs e)
  59. {
  60. RadioButton rb = e.Source as RadioButton;
  61. if (rb is null)
  62. {
  63. return;
  64. }
  65. switch (rb.Tag.ToString())
  66. {
  67. case "Initial":
  68. if (File.Exists(initCustomImgPath))
  69. {
  70. Utility.LoadImageFromPath(uxInitImage, initCustomImgPath);
  71. File.Copy(initCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_INITIAL), true);
  72. Utility.ChangedFiles[Utility.BG_INITIAL] = true;
  73. mySettings.IsInitialDefault = false;
  74. }
  75. break;
  76. case "Idle":
  77. if (File.Exists(idleCustomImgPath))
  78. {
  79. Utility.LoadImageFromPath(uxIdleImage, idleCustomImgPath);
  80. File.Copy(idleCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_IDLE), true);
  81. Utility.ChangedFiles[Utility.BG_IDLE] = true;
  82. mySettings.IsIdleDefault = false;
  83. }
  84. break;
  85. default:
  86. return;
  87. }
  88. mySettings.Save();
  89. }
  90. private void uxBrowseButton_Click(object sender, RoutedEventArgs e)
  91. {
  92. Button btn = e.Source as Button;
  93. if (btn is null)
  94. {
  95. return;
  96. }
  97. var dlg = new CommonOpenFileDialog()
  98. {
  99. EnsureFileExists = true,
  100. Title = "Select an image file",
  101. };
  102. dlg.Filters.Add(new CommonFileDialogFilter("BMP images", "*.bmp"));
  103. if (dlg.ShowDialog() == CommonFileDialogResult.Ok)
  104. {
  105. if (!Utility.IsBackgroundImageSizeQualified(dlg.FileName))
  106. {
  107. MessageBox.Show(dlg.FileName + "\r\n" + "The resolution of the image must be 800x480",
  108. "Incorrect Resolution", MessageBoxButton.OK, MessageBoxImage.Error);
  109. return;
  110. }
  111. switch (btn.Tag.ToString())
  112. {
  113. case "Initial":
  114. uxInitExploreTextBox.Text = dlg.FileName;
  115. initCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_INITIAL);
  116. File.Copy(dlg.FileName, initCustomImgPath, true);
  117. File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_INITIAL), true);
  118. Utility.LoadImageFromPath(uxInitImage, initCustomImgPath);
  119. Utility.ChangedFiles[Utility.BG_INITIAL] = true;
  120. mySettings.IsInitialDefault = false;
  121. mySettings.InitialCustomImgPath = initCustomImgPath;
  122. mySettings.InitialCustomImgPath_org = uxInitExploreTextBox.Text;
  123. break;
  124. case "Idle":
  125. uxIdleExploreTextBox.Text = dlg.FileName;
  126. idleCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_IDLE);
  127. File.Copy(dlg.FileName, idleCustomImgPath, true);
  128. File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_IDLE), true);
  129. Utility.LoadImageFromPath(uxIdleImage, idleCustomImgPath);
  130. Utility.ChangedFiles[Utility.BG_IDLE] = true;
  131. mySettings.IsIdleDefault = false;
  132. mySettings.IdleCustomImgPath = idleCustomImgPath;
  133. mySettings.IdleCustomImgPath_org = uxIdleExploreTextBox.Text;
  134. break;
  135. default:
  136. break;
  137. }
  138. }
  139. mySettings.Save();
  140. }
  141. }
  142. }