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(Utility.BG_PARENTFOLDER + Utility.BG_PLUG, UriKind.Relative); uxPlugImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Utility.OUTPUT_DIRECTORY + Utility.BG_PLUG); mySettings.IsPlugDefault = true; break; case "Precharge": srcPath = new Uri(Utility.BG_PARENTFOLDER + Utility.BG_PRECHARGE, UriKind.Relative); uxPrechargeImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Utility.OUTPUT_DIRECTORY + Utility.BG_PRECHARGE); mySettings.IsPreChargeDefault = true; break; case "Charging": srcPath = new Uri(Utility.BG_PARENTFOLDER + Utility.BG_CHARGING, UriKind.Relative); uxChargingImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Utility.OUTPUT_DIRECTORY + Utility.BG_CHARGING); mySettings.IsChargingDefault = true; break; case "Complete": srcPath = new Uri(Utility.BG_PARENTFOLDER + Utility.BG_COMPLETE, UriKind.Relative); uxCompleteImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Utility.OUTPUT_DIRECTORY + Utility.BG_COMPLETE); 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, Utility.OUTPUT_DIRECTORY + Utility.BG_PLUG, true); mySettings.IsPlugDefault = false; } break; case "Precharge": if (File.Exists(prechargeCustomImgPath)) { Utility.LoadImageFromPath(uxPrechargeImage, prechargeCustomImgPath); File.Copy(prechargeCustomImgPath, Utility.OUTPUT_DIRECTORY + Utility.BG_PRECHARGE, true); mySettings.IsPreChargeDefault = false; } break; case "Charging": if (File.Exists(chargingCustomImgPath)) { Utility.LoadImageFromPath(uxChargingImage, chargingCustomImgPath); File.Copy(chargingCustomImgPath, Utility.OUTPUT_DIRECTORY + Utility.BG_CHARGING, true); mySettings.IsChargingDefault = false; } break; case "Complete": if (File.Exists(completeCustomImgPath)) { Utility.LoadImageFromPath(uxCompleteImage, completeCustomImgPath); File.Copy(completeCustomImgPath, Utility.OUTPUT_DIRECTORY + 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 = Utility.CUSTOM_DIRECTORY + Utility.BG_PLUG; File.Copy(dlg.FileName, plugCustomImgPath, true); File.Copy(dlg.FileName, Utility.OUTPUT_DIRECTORY + Utility.BG_PLUG, true); Utility.LoadImageFromPath(uxPlugImage, plugCustomImgPath); mySettings.IsPlugDefault = false; mySettings.PlugCustomImgPath = plugCustomImgPath; mySettings.PlugCustomImgPath_org = uxPlugExploreTextBox.Text; break; case "Precharge": uxPrechargeExploreTextBox.Text = dlg.FileName; prechargeCustomImgPath = Utility.CUSTOM_DIRECTORY + Utility.BG_PRECHARGE; File.Copy(dlg.FileName, prechargeCustomImgPath, true); File.Copy(dlg.FileName, Utility.OUTPUT_DIRECTORY + Utility.BG_PRECHARGE, true); Utility.LoadImageFromPath(uxPrechargeImage, prechargeCustomImgPath); mySettings.IsPreChargeDefault = false; mySettings.PreChargeCustomImgPath = prechargeCustomImgPath; mySettings.PreChargeCustomImgPath_org = uxPrechargeExploreTextBox.Text; break; case "Charging": uxChargingExploreTextBox.Text = dlg.FileName; chargingCustomImgPath = Utility.CUSTOM_DIRECTORY + Utility.BG_CHARGING; File.Copy(dlg.FileName, chargingCustomImgPath, true); File.Copy(dlg.FileName, Utility.OUTPUT_DIRECTORY + Utility.BG_CHARGING, true); Utility.LoadImageFromPath(uxChargingImage, chargingCustomImgPath); mySettings.IsChargingDefault = false; mySettings.ChargingCustomImgPath = chargingCustomImgPath; mySettings.ChargingCustomImgPath_org = uxChargingExploreTextBox.Text; break; case "Complete": uxCompleteExploreTextBox.Text = dlg.FileName; completeCustomImgPath = Utility.CUSTOM_DIRECTORY + Utility.BG_COMPLETE; File.Copy(dlg.FileName, completeCustomImgPath, true); File.Copy(dlg.FileName, Utility.OUTPUT_DIRECTORY + Utility.BG_COMPLETE, true); Utility.LoadImageFromPath(uxCompleteImage, completeCustomImgPath); mySettings.IsCompleteDefault = false; mySettings.CompleteCustomImgPath = completeCustomImgPath; mySettings.CompleteCustomImgPath_org = uxCompleteExploreTextBox.Text; break; default: break; } } mySettings.Save(); } } }