From e82ae53a42cf024f4837f090befce61dbc68f7e1 Mon Sep 17 00:00:00 2001 From: XuShanQiXun <3401460572@qq.com> Date: Sat, 7 Jun 2025 12:13:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=94=A8=E6=88=B7=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=92=8C=E8=81=8A=E5=A4=A9=E6=B6=88=E6=81=AF=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 `chatapi.cs` 中为 `LoginResultData` 添加 `username` 属性。 更新 `MainWindow.xaml` 中的 `TextBlock` 绑定属性为 `UserName`,并调整头像的 `Margin` 属性。 在 `MainWindow.xaml.cs` 中优化登录成功后的 `UserName` 赋值逻辑,改进聊天消息的创建方式,注释掉旧逻辑,更新默认消息内容为 `(无内容)`,提升代码可读性和用户体验。 --- chatclient/Data/chatapi.cs | 1 + chatclient/MainWindow.xaml | 8 ++-- chatclient/MainWindow.xaml.cs | 71 ++++++++++++++++++++++------------- 3 files changed, 49 insertions(+), 31 deletions(-) diff --git a/chatclient/Data/chatapi.cs b/chatclient/Data/chatapi.cs index a0ff082..5ec8aae 100644 --- a/chatclient/Data/chatapi.cs +++ b/chatclient/Data/chatapi.cs @@ -20,6 +20,7 @@ namespace chatclient.Data public string? status { get; set; } public string? message { get; set; } public string? token { get; set; } + public string? username { get; set; } } internal class SignData { diff --git a/chatclient/MainWindow.xaml b/chatclient/MainWindow.xaml index 258ffb7..f77e9ed 100644 --- a/chatclient/MainWindow.xaml +++ b/chatclient/MainWindow.xaml @@ -14,10 +14,10 @@ - - + @@ -69,7 +69,7 @@ - + @@ -86,7 +86,7 @@ - + diff --git a/chatclient/MainWindow.xaml.cs b/chatclient/MainWindow.xaml.cs index 8e5cc86..c2b8912 100644 --- a/chatclient/MainWindow.xaml.cs +++ b/chatclient/MainWindow.xaml.cs @@ -135,6 +135,7 @@ namespace chatclient if (LoginResponse!.status == "success" && LoginResponse != null) { token = LoginResponse.token; + UserName = LoginResponse.username ?? "Unnamed"; Application.Current.Dispatcher.Invoke(() => { var mainWindow = Application.Current.Windows.OfType().FirstOrDefault(); @@ -181,18 +182,37 @@ namespace chatclient Application.Current.Dispatcher.Invoke(() => { // 处理聊天消息 - var chatmessage = new ChatMessage + if (chat.user == UserName) { - Sender = chat.user ?? "未知用户", - Type = MessageType.Text, - Image = new BitmapImage(new Uri(chat.image ?? "pack://application:,,,/resource/user.png", UriKind.Absolute)), - Content = chat.message ?? "无内容", - Timestamp = chat.timestamp, - Alignment = HorizontalAlignment.Left, - SenderColor = new SolidColorBrush(Colors.Black) - }; - var mainWindow = Application.Current.Windows.OfType().FirstOrDefault(); - mainWindow?.Messages.Add(chatmessage); + var chatmessage = new ChatMessage + { + Sender = chat.user ?? "未知用户", + Type = MessageType.Text, + Image = new BitmapImage(new Uri(chat.image ?? "pack://application:,,,/resource/user.png", UriKind.Absolute)), + Content = chat.message ?? "(无内容)", + Timestamp = DateTime.Now, + Alignment = HorizontalAlignment.Right, + SenderColor = new SolidColorBrush(Colors.Blue) + }; + var mainWindow = Application.Current.Windows.OfType().FirstOrDefault(); + mainWindow?.Messages.Add(chatmessage); + } + else + { + var chatmessage = new ChatMessage + { + Sender = chat.user ?? "未知用户", + Type = MessageType.Text, + Image = new BitmapImage(new Uri(chat.image ?? "pack://application:,,,/resource/user.png", UriKind.Absolute)), + Content = chat.message ?? "(无内容)", + Timestamp = chat.timestamp, + Alignment = HorizontalAlignment.Left, + SenderColor = new SolidColorBrush(Colors.Black) + }; + var mainWindow = Application.Current.Windows.OfType().FirstOrDefault(); + mainWindow?.Messages.Add(chatmessage); + } + }); } else @@ -234,21 +254,22 @@ namespace chatclient // 判断是否为群组,若是则收件人设为“所有人”,否则为联系人显示名 //string recipient = contact?.IsGroup == true ? "所有人" : contact?.DisplayName; + // 弃用的方法 // 创建新消息 - var newMessage = new ChatMessage - { - Sender = "我", - Type = MessageType.Text, - Image = new BitmapImage(new Uri("pack://application:,,,/resource/user.png", UriKind.Absolute)), // 默认头像 - Content = txtMessage.Text, - Timestamp = DateTime.Now, - Alignment = HorizontalAlignment.Right, // 自己发送的消息靠右 - SenderColor = new SolidColorBrush(Colors.Blue) - }; + //var newMessage = new ChatMessage + //{ + // Sender = "我", + // Type = MessageType.Text, + // Image = new BitmapImage(new Uri("pack://application:,,,/resource/user.png", UriKind.Absolute)), // 默认头像 + // Content = txtMessage.Text, + // Timestamp = DateTime.Now, + // Alignment = HorizontalAlignment.Right, // 自己发送的消息靠右 + // SenderColor = new SolidColorBrush(Colors.Blue) + //}; var newChatMessage = new ChatData { type = "chat", - message = newMessage.Content + message = txtMessage.Text }; string ChatJsonData = JsonSerializer.Serialize(newChatMessage); byte[] dataBytes = Encoding.UTF8.GetBytes(ChatJsonData); @@ -272,14 +293,10 @@ namespace chatclient log.Error(ex); Client.Close(); } - //finally - //{ - // - //} } } // 添加到消息列表 - Messages.Add(newMessage); + //Messages.Add(newMessage); // 清空输入框 txtMessage.Clear(); }