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 { /// /// Maintenance.xaml 的互動邏輯 /// public partial class MaintenanceUC : UserControl { private Properties.Settings mySettings = Properties.Settings.Default; private string maintainCustomImgPath; public MaintenanceUC() { InitializeComponent(); maintainCustomImgPath = mySettings.MaintainCustomImgPath; uxMaintainDefaultRadioButton.IsChecked = mySettings.IsMaintainDefault; uxMaintainCustomRadioButton.IsChecked = !mySettings.IsMaintainDefault; uxMaintainExploreTextBox.Text = mySettings.MaintainCustomImgPath_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(Utility.BG_PARENTFOLDER + Utility.BG_MAINTAIN, UriKind.Relative); uxMaintainImage.Source = new BitmapImage(srcPath); Utility.CopyFileFromResource(srcPath, Utility.OUTPUT_DIRECTORY + Utility.BG_MAINTAIN); mySettings.IsMaintainDefault = 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, Utility.OUTPUT_DIRECTORY + Utility.BG_MAINTAIN, true); mySettings.IsMaintainDefault = 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 = Utility.CUSTOM_DIRECTORY + Utility.BG_MAINTAIN; File.Copy(dlg.FileName, maintainCustomImgPath, true); File.Copy(dlg.FileName, Utility.OUTPUT_DIRECTORY + Utility.BG_MAINTAIN, true); Utility.LoadImageFromPath(uxMaintainImage, maintainCustomImgPath); mySettings.IsMaintainDefault = false; mySettings.MaintainCustomImgPath = maintainCustomImgPath; mySettings.MaintainCustomImgPath_org = uxMaintainExploreTextBox.Text; break; default: break; } } mySettings.Save(); } } }