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()