From 9a8831c94578a58500a5686d8e8d357f7823cfcb Mon Sep 17 00:00:00 2001 From: "zhengxuan.zhang" Date: Wed, 6 May 2026 14:13:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE=E7=AA=97?= =?UTF-8?q?=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- XplorePlane/ViewModels/Main/MainViewModel.cs | 18 +++ XplorePlane/Views/Main/MainWindow.xaml | 13 ++ XplorePlane/Views/Main/MainWindow.xaml.cs | 6 + XplorePlane/Views/Setting/SettingsWindow.xaml | 128 ++++++++++++++++++ .../Views/Setting/SettingsWindow.xaml.cs | 13 ++ 5 files changed, 178 insertions(+) create mode 100644 XplorePlane/Views/Setting/SettingsWindow.xaml create mode 100644 XplorePlane/Views/Setting/SettingsWindow.xaml.cs diff --git a/XplorePlane/ViewModels/Main/MainViewModel.cs b/XplorePlane/ViewModels/Main/MainViewModel.cs index 1ac944f..b6ff57e 100644 --- a/XplorePlane/ViewModels/Main/MainViewModel.cs +++ b/XplorePlane/ViewModels/Main/MainViewModel.cs @@ -65,6 +65,7 @@ namespace XplorePlane.ViewModels public DelegateCommand OpenLibraryVersionsCommand { get; } public DelegateCommand OpenUserManualCommand { get; } public DelegateCommand OpenCameraSettingsCommand { get; } + public DelegateCommand OpenSettingsCommand { get; } public DelegateCommand NewCncProgramCommand { get; } public DelegateCommand SaveCncProgramCommand { get; } public DelegateCommand LoadCncProgramCommand { get; } @@ -145,6 +146,7 @@ namespace XplorePlane.ViewModels private Window _detectorConfigWindow; private Window _plcAddrConfigWindow; private Window _realTimeLogViewerWindow; + private Window _settingsWindow; private Window _toolboxWindow; private Window _raySourceConfigWindow; private object _imagePanelContent; @@ -212,6 +214,7 @@ namespace XplorePlane.ViewModels OpenLibraryVersionsCommand = new DelegateCommand(() => ShowWindow(new Views.LibraryVersionsWindow(), "关于")); OpenUserManualCommand = new DelegateCommand(ExecuteOpenUserManual); OpenCameraSettingsCommand = new DelegateCommand(ExecuteOpenCameraSettings); + OpenSettingsCommand = new DelegateCommand(ExecuteOpenSettings); NewCncProgramCommand = new DelegateCommand(() => ExecuteCncEditorAction(vm => vm.NewProgramCommand.Execute())); SaveCncProgramCommand = new DelegateCommand(() => ExecuteCncEditorAction(vm => vm.SaveProgramCommand.Execute())); LoadCncProgramCommand = new DelegateCommand(() => ExecuteCncEditorAction(vm => vm.LoadProgramCommand.Execute())); @@ -377,6 +380,21 @@ namespace XplorePlane.ViewModels } } + private void ExecuteOpenSettings() + { + try + { + ShowOrActivate(_settingsWindow, w => _settingsWindow = w, + () => new Views.SettingsWindow(this), "Settings"); + } + catch (Exception ex) + { + _logger.Error(ex, "Failed to open settings window"); + MessageBox.Show($"Failed to open settings window: {ex.Message}", + "Error", MessageBoxButton.OK, MessageBoxImage.Error); + } + } + private void ExecuteAxisReset() { var result = MessageBox.Show("确认执行轴复位操作?", "轴复位", diff --git a/XplorePlane/Views/Main/MainWindow.xaml b/XplorePlane/Views/Main/MainWindow.xaml index 628b1d3..15ba9c8 100644 --- a/XplorePlane/Views/Main/MainWindow.xaml +++ b/XplorePlane/Views/Main/MainWindow.xaml @@ -391,6 +391,19 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +