From 087956b161194912fada5f6da70147c97032a068 Mon Sep 17 00:00:00 2001
From: Mr-Quin <8700123+Mr-Quin@users.noreply.github.com>
Date: Mon, 25 Mar 2024 22:44:41 -0700
Subject: [PATCH] Add option to minimize to tray when existing
---
.../Core/Config/CommonConfig.cs | 6 +++++
BetterGenshinImpact/View/MainWindow.xaml | 3 +++
.../View/Pages/CommonSettingsPage.xaml | 27 +++++++++++++++++++
.../ViewModel/MainWindowViewModel.cs | 11 ++++++++
4 files changed, 47 insertions(+)
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()