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 { /// /// InitialIdleUC.xaml 的互動邏輯 /// public partial class InitialIdleUC : UserControl { private Properties.Settings mySettings = Properties.Settings.Default; private string initCustomImgPath; private string idleCustomImgPath; public InitialIdleUC() { InitializeComponent(); initCustomImgPath = mySettings.InitialCustomImgPath; uxInitDefaultRadioButton.IsChecked = mySettings.IsInitialDefault; uxInitCustomRadioButton.IsChecked = !mySettings.IsInitialDefault; uxInitExploreTextBox.Text = mySettings.InitialCustomImgPath_org; idleCustomImgPath = mySettings.IdleCustomImgPath; uxIdleDefaultRadioButton.IsChecked = mySettings.IsIdleDefault; uxIdleCustomRadioButton.IsChecked = !mySettings.IsIdleDefault; uxIdleExploreTextBox.Text = mySettings.IdleCustomImgPath_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 "Initial": srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_INITIAL), UriKind.Relative); uxInitImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_INITIAL)); Utility.ChangedFiles[Utility.BG_INITIAL] = true; mySettings.IsInitialDefault = true; break; case "Idle": srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_IDLE), UriKind.Relative); uxIdleImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_IDLE)); Utility.ChangedFiles[Utility.BG_IDLE] = true; mySettings.IsIdleDefault = 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 "Initial": if (File.Exists(initCustomImgPath)) { Utility.LoadImageFromPath(uxInitImage, initCustomImgPath); File.Copy(initCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_INITIAL), true); Utility.ChangedFiles[Utility.BG_INITIAL] = true; mySettings.IsInitialDefault = false; } break; case "Idle": if (File.Exists(idleCustomImgPath)) { Utility.LoadImageFromPath(uxIdleImage, idleCustomImgPath); File.Copy(idleCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_IDLE), true); Utility.ChangedFiles[Utility.BG_IDLE] = true; mySettings.IsIdleDefault = 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 "Initial": uxInitExploreTextBox.Text = dlg.FileName; initCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_INITIAL); File.Copy(dlg.FileName, initCustomImgPath, true); File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_INITIAL), true); Utility.LoadImageFromPath(uxInitImage, initCustomImgPath); Utility.ChangedFiles[Utility.BG_INITIAL] = true; mySettings.IsInitialDefault = false; mySettings.InitialCustomImgPath = initCustomImgPath; mySettings.InitialCustomImgPath_org = uxInitExploreTextBox.Text; break; case "Idle": uxIdleExploreTextBox.Text = dlg.FileName; idleCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_IDLE); File.Copy(dlg.FileName, idleCustomImgPath, true); File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_IDLE), true); Utility.LoadImageFromPath(uxIdleImage, idleCustomImgPath); Utility.ChangedFiles[Utility.BG_IDLE] = true; mySettings.IsIdleDefault = false; mySettings.IdleCustomImgPath = idleCustomImgPath; mySettings.IdleCustomImgPath_org = uxIdleExploreTextBox.Text; break; default: break; } } mySettings.Save(); } } }