From 253f766732aa0a0a3df6929ae22812e417d9c743 Mon Sep 17 00:00:00 2001 From: XuShanQiXun <3401460572@qq.com> Date: Fri, 6 Jun 2025 20:48:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=99=BB=E5=BD=95=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=81=8A=E5=A4=A9=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chatclient/Data/ChatDataModel.cs | 53 +++++++++++++++ chatclient/{ => Data}/chatapi.cs | 3 +- chatclient/LoginWindow.xaml.cs | 4 +- chatclient/MainWindow.xaml | 67 ++++++++++++++++++- chatclient/MainWindow.xaml.cs | 111 ++++++++++++++++++++++++------- 5 files changed, 210 insertions(+), 28 deletions(-) create mode 100644 chatclient/Data/ChatDataModel.cs rename chatclient/{ => Data}/chatapi.cs (97%) diff --git a/chatclient/Data/ChatDataModel.cs b/chatclient/Data/ChatDataModel.cs new file mode 100644 index 0000000..27b02d2 --- /dev/null +++ b/chatclient/Data/ChatDataModel.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; +using System.Windows; +using System.Windows.Media.Imaging; + +namespace chatclient.Data +{ + /// + /// 聊天消息类,表示一条消息的内容和显示属性 + /// + public class ChatMessage + { + /// + /// 发送者名称 + /// + public required string Sender { get; set; } + /// + /// 消息类型(文本、图片、文件、系统消息等) + /// + public required MessageType Type { get; set; } = MessageType.Text; + /// + /// 消息发送者的头像图片 + /// + public required BitmapImage Image { get; set; } + /// + /// 消息内容 + /// + public required string Content { get; set; } + /// + /// 消息发送时间 + /// + public DateTime Timestamp { get; set; } + /// + /// 消息在界面中的对齐方式(左/右) + /// + public HorizontalAlignment Alignment { get; set; } = HorizontalAlignment.Left; + /// + /// 发送者名称的显示颜色 + /// + public Brush SenderColor { get; set; } = Brushes.Black; + } + public enum MessageType + { + Text, + Image,//图片 + File,//文件 + System//系统信息 + } +} diff --git a/chatclient/chatapi.cs b/chatclient/Data/chatapi.cs similarity index 97% rename from chatclient/chatapi.cs rename to chatclient/Data/chatapi.cs index c5c3e56..4d36103 100644 --- a/chatclient/chatapi.cs +++ b/chatclient/Data/chatapi.cs @@ -1,5 +1,4 @@ - -namespace chatapi +namespace chatclient.Data { internal class Server { diff --git a/chatclient/LoginWindow.xaml.cs b/chatclient/LoginWindow.xaml.cs index 603a59a..63c32d5 100644 --- a/chatclient/LoginWindow.xaml.cs +++ b/chatclient/LoginWindow.xaml.cs @@ -6,9 +6,9 @@ using System.Threading.Tasks; using System.Windows; using System.Net.Sockets; using log4net; -using chatapi; using System.Net.Http; using Microsoft.Win32; +using chatclient.Data; namespace chatclient @@ -126,7 +126,7 @@ namespace chatclient string SignJsonData = JsonSerializer.Serialize(SignData); byte[] dataBytes = Encoding.UTF8.GetBytes(SignJsonData); var content = new StringContent(SignJsonData, Encoding.UTF8, "application/json"); - var response = await MainWindow.HttpClient.PostAsync($"{chatapi.Server.ServerUrl}/api/register", content); + var response = await MainWindow.HttpClient.PostAsync($"{Server.ServerUrl}/api/register", content); var responseBody = await response.Content.ReadAsStringAsync(); log.Info($"注册请求已发送,响应内容: {responseBody}"); var signresponse = JsonSerializer.Deserialize(responseBody); diff --git a/chatclient/MainWindow.xaml b/chatclient/MainWindow.xaml index 4ff422e..18a8066 100644 --- a/chatclient/MainWindow.xaml +++ b/chatclient/MainWindow.xaml @@ -27,7 +27,72 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +