using Microsoft.WindowsAPICodePack.Dialogs; using System; using System.IO; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Imaging; namespace Phihong_EVSE_UI_Tool { /// /// Maintenance.xaml 的互動邏輯 /// public partial class MaintenanceUC : UserControl { private Properties.Settings mySettings = Properties.Settings.Default; private string maintainCustomImgPath; private string emcCustomImgPath; public MaintenanceUC() { InitializeComponent(); maintainCustomImgPath = mySettings.MaintainCustomImgPath; uxMaintainDefaultRadioButton.IsChecked = mySettings.IsMaintainDefault; uxMaintainCustomRadioButton.IsChecked = !mySettings.IsMaintainDefault; uxMaintainExploreTextBox.Text = mySettings.MaintainCustomImgPath_org; emcCustomImgPath = mySettings.EmcCustomImgPath; uxEmcDefaultRadioButton.IsChecked = mySettings.IsEmcDefault; uxEmcCustomRadioButton.IsChecked = !mySettings.IsEmcDefault; uxEmcExploreTextBox.Text = mySettings.EmcCustomImgPath_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 "Maintain": srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_MAINTAIN), UriKind.Relative); uxMaintainImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_MAINTAIN)); Utility.ChangedFiles[Utility.BG_MAINTAIN] = true; mySettings.IsMaintainDefault = true; break; case "Emc": srcPath = new Uri(Path.Combine(Utility.BG_PARENTFOLDER, Utility.BG_EMERGENCY), UriKind.Relative); uxEmcImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_EMERGENCY)); Utility.ChangedFiles[Utility.BG_EMERGENCY] = true; mySettings.IsEmcDefault = 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 "Maintain": if (File.Exists(maintainCustomImgPath)) { Utility.LoadImageFromPath(uxMaintainImage, maintainCustomImgPath); File.Copy(maintainCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_MAINTAIN), true); Utility.ChangedFiles[Utility.BG_MAINTAIN] = true; mySettings.IsMaintainDefault = false; } break; case "Emc": if (File.Exists(emcCustomImgPath)) { Utility.LoadImageFromPath(uxEmcImage, emcCustomImgPath); File.Copy(emcCustomImgPath, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_EMERGENCY), true); Utility.ChangedFiles[Utility.BG_EMERGENCY] = true; mySettings.IsEmcDefault = 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 "Maintain": uxMaintainExploreTextBox.Text = dlg.FileName; maintainCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_MAINTAIN); File.Copy(dlg.FileName, maintainCustomImgPath, true); File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_MAINTAIN), true); Utility.LoadImageFromPath(uxMaintainImage, maintainCustomImgPath); Utility.ChangedFiles[Utility.BG_MAINTAIN] = true; mySettings.IsMaintainDefault = false; mySettings.MaintainCustomImgPath = maintainCustomImgPath; mySettings.MaintainCustomImgPath_org = uxMaintainExploreTextBox.Text; break; case "Emc": uxEmcExploreTextBox.Text = dlg.FileName; emcCustomImgPath = Path.Combine(Utility.CUSTOM_DIRECTORY, Utility.BG_EMERGENCY); File.Copy(dlg.FileName, emcCustomImgPath, true); File.Copy(dlg.FileName, Path.Combine(Utility.OUTPUT_DIRECTORY, Utility.BG_EMERGENCY), true); Utility.LoadImageFromPath(uxEmcImage, emcCustomImgPath); Utility.ChangedFiles[Utility.BG_EMERGENCY] = true; mySettings.IsEmcDefault = false; mySettings.EmcCustomImgPath = emcCustomImgPath; mySettings.EmcCustomImgPath_org = uxEmcExploreTextBox.Text; break; default: break; } } mySettings.Save(); } } }