From 15147b88a6562b2ce547d8380c16f4e7955d4428 Mon Sep 17 00:00:00 2001 From: XuShanQiXun <3401460572@qq.com> Date: Sat, 7 Jun 2025 16:17:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E7=AA=97=E5=8F=A3=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E5=A4=84=E7=90=86=E5=92=8C=E8=B5=84=E6=BA=90=E6=B8=85?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 `LoginWindow.xaml` 中添加了 `Closing` 事件处理程序,以便在窗口关闭时执行特定逻辑。新增的 `Window_Closing` 方法会检查 `MainWindow.token` 是否为 `null`,并在必要时关闭应用程序。此外,在 `MainWindow.xaml.cs` 中确保在清理资源时将 `token` 设置为 `null`,以避免潜在的资源泄漏或错误。 --- chatclient/LoginWindow.xaml | 2 +- chatclient/LoginWindow.xaml.cs | 4 ++++ chatclient/MainWindow.xaml.cs | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/chatclient/LoginWindow.xaml b/chatclient/LoginWindow.xaml index 13b9691..eeaa12e 100644 --- a/chatclient/LoginWindow.xaml +++ b/chatclient/LoginWindow.xaml @@ -8,7 +8,7 @@ xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls" x:Class="chatclient.LoginWindow" mc:Ignorable="d" Title="LoginWindow" Height="590" Width="360" MinHeight="590" MinWidth="360" MaxHeight="590" MaxWidth="360" - ResizeMode="NoResize"> + ResizeMode="NoResize" Closing="Window_Closing"> diff --git a/chatclient/LoginWindow.xaml.cs b/chatclient/LoginWindow.xaml.cs index 7d2d871..ba1c4b1 100644 --- a/chatclient/LoginWindow.xaml.cs +++ b/chatclient/LoginWindow.xaml.cs @@ -213,6 +213,10 @@ namespace chatclient // 例如:UserName = LoadSavedUsername(); // Update("UserName"); } + public void Window_Closing(object sender, CancelEventArgs e) + { + if(MainWindow.token == null) Application.Current.Shutdown(); + } } } diff --git a/chatclient/MainWindow.xaml.cs b/chatclient/MainWindow.xaml.cs index 6b2c2c2..34bef44 100644 --- a/chatclient/MainWindow.xaml.cs +++ b/chatclient/MainWindow.xaml.cs @@ -339,6 +339,7 @@ namespace chatclient Client?.Shutdown(SocketShutdown.Both); Client?.Close(); Client?.Dispose(); + token = null; _trayManager?.Dispose(); } }