diff --git a/BetterGenshinImpact/Core/Config/CommonConfig.cs b/BetterGenshinImpact/Core/Config/CommonConfig.cs index b16e58be..d455a269 100644 --- a/BetterGenshinImpact/Core/Config/CommonConfig.cs +++ b/BetterGenshinImpact/Core/Config/CommonConfig.cs @@ -20,4 +20,10 @@ public partial class CommonConfig : ObservableObject /// [ObservableProperty] private bool _screenshotUidCoverEnabled; + + /// + /// 退出时最小化至托盘 + /// + [ObservableProperty] + private bool _exitToTray; } diff --git a/BetterGenshinImpact/View/MainWindow.xaml b/BetterGenshinImpact/View/MainWindow.xaml index 7fcb88bd..c2af5b99 100644 --- a/BetterGenshinImpact/View/MainWindow.xaml +++ b/BetterGenshinImpact/View/MainWindow.xaml @@ -29,6 +29,9 @@ + + + diff --git a/BetterGenshinImpact/View/Pages/CommonSettingsPage.xaml b/BetterGenshinImpact/View/Pages/CommonSettingsPage.xaml index e5f4ed02..65d0d6da 100644 --- a/BetterGenshinImpact/View/Pages/CommonSettingsPage.xaml +++ b/BetterGenshinImpact/View/Pages/CommonSettingsPage.xaml @@ -342,6 +342,33 @@ + + + + + + + + + + + + + + + diff --git a/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs b/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs index 08a461ef..79b81173 100644 --- a/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs +++ b/BetterGenshinImpact/ViewModel/MainWindowViewModel.cs @@ -8,6 +8,7 @@ using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.Logging; using OpenCvSharp; using System; +using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Net.Http; @@ -45,6 +46,16 @@ public partial class MainWindowViewModel : ObservableObject IsVisible = false; } + [RelayCommand] + private void OnClosing(CancelEventArgs e) + { + if (Config.CommonConfig.ExitToTray) + { + e.Cancel = true; + OnHide(); + } + } + [RelayCommand] [SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.RelayCommandGenerator", "MVVMTK0039:Async void returning method annotated with RelayCommand")] private async void OnLoaded()