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 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +