From 64e54bfe520792f08fe276005b6e522f1e731784 Mon Sep 17 00:00:00 2001 From: Kaniu Tayou <1056879522@qq.com> Date: Wed, 19 Dec 2018 23:53:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=AE=9E=E7=8E=B0=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E5=8F=91=E9=80=81=E6=96=87=E6=9C=AC=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- StormChatWPF/Chat.cs | 94 ++++++++++++++++++--------------- StormChatWPF/LogWindow.xaml | 10 ++-- StormChatWPF/LogWindow.xaml.cs | 10 +--- StormChatWPF/MainWindow.xaml | 24 +++++---- StormChatWPF/MainWindow.xaml.cs | 74 ++++++++++++++++++++++---- 5 files changed, 136 insertions(+), 76 deletions(-) diff --git a/StormChatWPF/Chat.cs b/StormChatWPF/Chat.cs index 67a49b9..0e54842 100644 --- a/StormChatWPF/Chat.cs +++ b/StormChatWPF/Chat.cs @@ -12,26 +12,63 @@ namespace StormChatWPF class Chat { public static List ContactsList;//联系人集合 - public static Chat chat = new Chat(); + public static Chat chat=new Chat(); private Chat() { - StormClient.OnLoginDone += HaveLogin; - StormClient.OnGetUserListDone += GetContactsList; - StormClient.OnMessage +=ReciveMessage; + StormClient.OnLoginDone += OnHaveLogin; + StormClient.OnGetUserListDone += OnGetContactsList; + StormClient.OnMessage +=OnMessage; } - internal User SetContact { get; set; }//设置当前联系人对象 - - internal static void GetContactsList(ResultHead head, User[] users) + internal static User CurrentContact { get; set; }//设置当前联系人对象 + /// + /// 获取联系人列表(完成后打开主窗体) + /// + private void OnGetContactsList(ResultHead head, User[] users) { if (head.Error != "") { MessageBox.Show("无法获取联系人列表"); - } - else - ContactsList =new List( users); return; - }//获取联系人列表 - internal void Log(string user,string password) + } + App.Current.Dispatcher.Invoke( + (Action)delegate () + { + ContactsList = new List(users); + MainWindow mainWindow = new MainWindow(); + mainWindow.Show(); + LogWindow.Instence.Close(); + }); + } + private void OnHaveLogin(ResultHead head, User user) + { + if (head.Error == "") + { + User.Me = user; + StormClient.QueueGetUserList(); + } + else + { + MessageBox.Show("请核对账号密码!"); + } + }//登录完成 + private void OnMessage(Message message) + { + if (MainWindow.Instence != null) + { + MainWindow.Instence.ShowMessage(message); + } + }//接受到新消息 + + internal void SendMessage(string text,User target) + { + Message msg = new Message(text,target); + Action f = delegate (ResultHead head) + { + MainWindow.Instence.ShowMessage(msg); + }; + StormClient.QueueSendMessage(msg,f); + }//发送消息 + internal static void Log(string user, string password) { if (StormClient.Initialize()) { @@ -45,37 +82,6 @@ namespace StormChatWPF MessageBox.Show("连接服务器失败!"); } }//登录 - internal static void HaveLogin(ResultHead head, User user) - { - App.Current.Dispatcher.Invoke( - (Action)delegate () - { - if (head.Error == "") - { - User.Me = user; - MainWindow userWindow = new MainWindow(); - userWindow.Show(); - LogWindow.Instence.Close(); - } - else - { - MessageBox.Show("请核对账号密码!"); - } - }); - }//登录完成 - internal static void ReciveMessage(Message message) - { - LogWindow.Instence.ShowMessage(message); - }//接受到新消息的时候 - internal static void SendMessage(string text,User target) - { - // Message msg = new Message(text); - // Action f = delegate(BaseHead head) - // { - - // }; - // StormClient.QueueSendMessage(msg, target, f); - // LogWindow.Instence.ShowUserMessage(); - } + } } diff --git a/StormChatWPF/LogWindow.xaml b/StormChatWPF/LogWindow.xaml index ed4a88f..12d5f90 100644 --- a/StormChatWPF/LogWindow.xaml +++ b/StormChatWPF/LogWindow.xaml @@ -20,10 +20,10 @@ -