using Microsoft.WindowsAPICodePack.Dialogs; using System; using System.IO; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Imaging; namespace Phihong_EVSE_UI_Tool { /// /// PlugChargingUC.xaml 的互動邏輯 /// public partial class PlugChargingUC : UserControl { private Properties.Settings mySettings = Properties.Settings.Default; private string plugCustomImgPath; private string prechargeCustomImgPath; private string chargingCustomImgPath; private string completeCustomImgPath; public PlugChargingUC() { InitializeComponent(); plugCustomImgPath = mySettings.PlugCustomImgPath; uxPlugDefaultRadioButton.IsChecked = mySettings.IsPlugDefault; uxPlugCustomRadioButton.IsChecked = !mySettings.IsPlugDefault; uxPlugExploreTextBox.Text = mySettings.PlugCustomImgPath_org; prechargeCustomImgPath = mySettings.PreChargeCustomImgPath; uxPrechargeDefaultRadioButton.IsChecked = mySettings.IsPreChargeDefault; uxPrechargeCustomRadioButton.IsChecked = !mySettings.IsPreChargeDefault; uxPrechargeExploreTextBox.Text = mySettings.PreChargeCustomImgPath_org; chargingCustomImgPath = mySettings.ChargingCustomImgPath; uxChargingDefaultRadioButton.IsChecked = mySettings.IsChargingDefault; uxChargingCustomRadioButton.IsChecked = !mySettings.IsChargingDefault; uxChargingExploreTextBox.Text = mySettings.ChargingCustomImgPath_org; completeCustomImgPath = mySettings.CompleteCustomImgPath; uxCompleteDefaultRadioButton.IsChecked = mySettings.IsCompleteDefault; uxCompleteCustomRadioButton.IsChecked = !mySettings.IsCompleteDefault; uxCompleteExploreTextBox.Text = mySettings.CompleteCustomImgPath_org; } private void uxDefaultRadioButton_Checked(object sender, RoutedEventArgs e) { Uri srcPath; RadioButton rb = e.Source as RadioButton; if (rb is null) { return; } switch (rb.Tag.ToString()) { case "Plug": srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_PLUG), UriKind.Relative); uxPlugImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_PLUG)); Utility.ChangedFiles[Utility.BG_PLUG] = true; mySettings.IsPlugDefault = true; break; case "Precharge": srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_PRECHARGE), UriKind.Relative); uxPrechargeImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_PRECHARGE)); Utility.ChangedFiles[Utility.BG_PRECHARGE] = true; mySettings.IsPreChargeDefault = true; break; case "Charging": srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_CHARGING), UriKind.Relative); uxChargingImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_CHARGING)); Utility.ChangedFiles[Utility.BG_CHARGING] = true; mySettings.IsChargingDefault = true; break; case "Complete": srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_COMPLETE), UriKind.Relative); uxCompleteImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_COMPLETE)); Utility.ChangedFiles[Utility.BG_COMPLETE] = true; mySettings.IsCompleteDefault = true; break; default: return; } mySettings.Save(); } private void uxCustomRadioButton_Checked(object sender, RoutedEventArgs e) { RadioButton rb = e.Source as RadioButton; if (rb is null) { return; } switch (rb.Tag.ToString()) { case "Plug": if (File.Exists(plugCustomImgPath)) { Utility.LoadImageFromPath(uxPlugImage, plugCustomImgPath); File.Copy(plugCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_PLUG), true); Utility.ChangedFiles[Utility.BG_PLUG] = true; mySettings.IsPlugDefault = false; } break; case "Precharge": if (File.Exists(prechargeCustomImgPath)) { Utility.LoadImageFromPath(uxPrechargeImage, prechargeCustomImgPath); File.Copy(prechargeCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_PRECHARGE), true); Utility.ChangedFiles[Utility.BG_PRECHARGE] = true; mySettings.IsPreChargeDefault = false; } break; case "Charging": if (File.Exists(chargingCustomImgPath)) { Utility.LoadImageFromPath(uxChargingImage, chargingCustomImgPath); File.Copy(chargingCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_CHARGING), true); Utility.ChangedFiles[Utility.BG_CHARGING] = true; mySettings.IsChargingDefault = false; } break; case "Complete": if (File.Exists(completeCustomImgPath)) { Utility.LoadImageFromPath(uxCompleteImage, completeCustomImgPath); File.Copy(completeCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_COMPLETE), true); Utility.ChangedFiles[Utility.BG_COMPLETE] = true; mySettings.IsCompleteDefault = false; } break; default: return; } mySettings.Save(); } private void uxBrowseButton_Click(object sender, RoutedEventArgs e) { Button btn = e.Source as Button; if (btn is null) { return; } var dlg = new CommonOpenFileDialog() { EnsureFileExists = true, Title = "Select an image file", }; dlg.Filters.Add(new CommonFileDialogFilter("BMP images", "*.bmp")); if (dlg.ShowDialog() == CommonFileDialogResult.Ok) { if (!Utility.IsBackgroundImageSizeQualified(dlg.FileName)) { MessageBox.Show(dlg.FileName + "\r\n" + "The resolution of the image must be 800x480", "Incorrect Resolution", MessageBoxButton.OK, MessageBoxImage.Error); return; } switch (btn.Tag.ToString()) { case "Plug": uxPlugExploreTextBox.Text = dlg.FileName; plugCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_PLUG); File.Copy(dlg.FileName, plugCustomImgPath, true); File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_PLUG), true); Utility.LoadImageFromPath(uxPlugImage, plugCustomImgPath); Utility.ChangedFiles[Utility.BG_PLUG] = true; mySettings.IsPlugDefault = false; mySettings.PlugCustomImgPath = plugCustomImgPath; mySettings.PlugCustomImgPath_org = uxPlugExploreTextBox.Text; break; case "Precharge": uxPrechargeExploreTextBox.Text = dlg.FileName; prechargeCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_PRECHARGE); File.Copy(dlg.FileName, prechargeCustomImgPath, true); File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_PRECHARGE), true); Utility.LoadImageFromPath(uxPrechargeImage, prechargeCustomImgPath); Utility.ChangedFiles[Utility.BG_PRECHARGE] = true; mySettings.IsPreChargeDefault = false; mySettings.PreChargeCustomImgPath = prechargeCustomImgPath; mySettings.PreChargeCustomImgPath_org = uxPrechargeExploreTextBox.Text; break; case "Charging": uxChargingExploreTextBox.Text = dlg.FileName; chargingCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_CHARGING); File.Copy(dlg.FileName, chargingCustomImgPath, true); File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_CHARGING), true); Utility.LoadImageFromPath(uxChargingImage, chargingCustomImgPath); Utility.ChangedFiles[Utility.BG_CHARGING] = true; mySettings.IsChargingDefault = false; mySettings.ChargingCustomImgPath = chargingCustomImgPath; mySettings.ChargingCustomImgPath_org = uxChargingExploreTextBox.Text; break; case "Complete": uxCompleteExploreTextBox.Text = dlg.FileName; completeCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_COMPLETE); File.Copy(dlg.FileName, completeCustomImgPath, true); File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_COMPLETE), true); Utility.LoadImageFromPath(uxCompleteImage, completeCustomImgPath); Utility.ChangedFiles[Utility.BG_COMPLETE] = true; mySettings.IsCompleteDefault = false; mySettings.CompleteCustomImgPath = completeCustomImgPath; mySettings.CompleteCustomImgPath_org = uxCompleteExploreTextBox.Text; break; default: break; } } mySettings.Save(); } } }