Example #1
0
        public ChatWindow(DTO_Friend _df, UserInfo _u, Window _w)
        {
            InitializeComponent();
            w = _w;


            //将自己的信息存入消息框tag
            MessageValue.Tag = _u;

            //获取本地聊天记录
            Dictionary <string, List <DTO_SMess> > dic = FilesHelper.FileHelper.ReadFMessages(_u.UI_Number);

            //提取好友信息
            if (dic.Count > 0)
            {
                List <string> li = dic.Keys.ToList();
                foreach (var item in (w as Main).GetFriends(li))
                {
                    AddOneUser(item);
                    messages.AddRange(dic[item._Number]);
                }

                List <DTO_SMess> lis = dic[(this.Tag as DTO_Friend)._Number];
                foreach (var item in lis)
                {
                    AddMess(item);
                }
            }
            //添加一个可聊天好友
            AddOneUser(_df);
        }
Example #2
0
        /// <summary>
        /// 选择和谁聊天
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void sp_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            //获取选择的好友
            StackPanel sp = sender as StackPanel;
            //得到好友信息
            DTO_Friend df = sp.Tag as DTO_Friend;



            if (!df._Number.Equals((this.Tag as DTO_Friend)._Number))
            {
                //清空消息展示框
                SendMessages.Children.Clear();

                mysv.ScrollToVerticalOffset(0);
                this.Title = string.IsNullOrEmpty(df._Remark) ? df._Nike : df._Remark;
                this.Tag   = df;


                //添加聊天消息
                foreach (var item in messages.Where(a => a.Despatcher.UI_Number.Equals(df._Number) || a.SendToNum._Number.Equals(df._Number)).ToList())
                {
                    AddMess(item);
                }
            }
        }
Example #3
0
        /// <summary>
        /// 添加一个聊天用户
        /// </summary>
        /// <param name="_df"></param>
        void AddOneUser(DTO_Friend _df)
        {
            //创建容器
            StackPanel sp = new StackPanel();

            //设置内容排列方式
            sp.Orientation          = Orientation.Horizontal;
            sp.MouseLeftButtonDown += sp_MouseLeftButtonDown;
            //设置边距
            sp.Margin = new Thickness(3, 3, 3, 0);
            sp.Tag    = _df;


            //头像
            Image img = new Image();

            img.Source = new BitmapImage(new Uri("./HeadImgs/h1.bmp", UriKind.Relative));
            img.Width  = 30;
            img.Height = 30;
            img.Clip   = new EllipseGeometry(new Point(15, 15), 15, 15);
            sp.Children.Add(img);


            //好友名称
            TextBlock tb = new TextBlock();
            //设置好友名称
            string nick = string.IsNullOrEmpty(_df._Remark) ? _df._Nike : _df._Remark;

            tb.Text = nick.Length > 6 ? nick.Substring(0, 3) + "..." : nick;
            tb.VerticalAlignment = System.Windows.VerticalAlignment.Center;
            tb.FontSize          = 15;
            sp.Children.Add(tb);


            bool isadd = true;

            foreach (var item in messagefriendslist.Children)
            {
                if (((item as StackPanel).Tag as DTO_Friend)._Number == _df._Number)
                {
                    isadd = false;
                }
            }
            if (isadd)
            {
                messagefriendslist.Children.Add(sp);
            }


            this.Tag   = _df;
            this.Title = string.IsNullOrEmpty(_df._Remark) ? _df._Nike : _df._Remark;
        }
Example #4
0
 /// <summary>
 /// 添加一个用户聊天
 /// </summary>
 /// <param name="_df"></param>
 public void AddFriend(DTO_Friend _df)
 {
     AddOneUser(_df);
 }