Ejemplo n.º 1
0
        /// <summary>
        /// 获取好友列表
        /// </summary>
        /// <returns></returns>
        private List <TalkUser> GetFirendTalkUserList(string loginUserName)
        {
            List <TalkUser> users = new List <TalkUser>();
            //更新用户列表(今后可过滤好友用户)
            var firendList = UserList.Users.Where(v => v != loginUserName).ToList();

            //在线状态
            foreach (var name in firendList)
            {
                TalkUser user = new TalkUser();
                user.UserName = name;
                user.IsOnline = _loginUserList.Any(v => v.UserName == name);
                users.Add(user);
            }

            return(users);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 添加用户到列表
        /// </summary>
        private void AddUserToList(TalkUser user)
        {
            var userName = user.UserName;
            var isOnline = user.IsOnline;


            ListBoxItem listBoxItem = new ListBoxItem();

            listBoxItem.Height     = 64;
            listBoxItem.Background = isOnline ? Brushes.LightBlue : Brushes.LightGray;
            //双击弹出聊天窗口
            listBoxItem.MouseDoubleClick += StartTalk;
            listBoxItem.Tag = user;

            //listBoxItem.BorderBrush = Brushes.Gray;
            StackPanel sPanel = new StackPanel();

            sPanel.Orientation = Orientation.Horizontal;

            Image image     = new Image();
            var   imagePath = "pack://application:,,,/images/" + userName + ".jpg";
            var   iamgeUri  = new Uri(imagePath);

            try
            {
                image.Source = new BitmapImage(iamgeUri);
            }catch
            {
                imagePath    = "pack://application:,,,/images/user.jpg";
                iamgeUri     = new Uri(imagePath);
                image.Source = new BitmapImage(iamgeUri);
            }
            image.Height = 64;
            image.Width  = 74;

            StackPanel subSPanel = new StackPanel();

            subSPanel.Orientation = Orientation.Vertical;
            subSPanel.Width       = 170;

            Label nameLabel = new Label();

            nameLabel.Content    = userName;
            nameLabel.FontSize   = 18;
            nameLabel.Foreground = isOnline ? (Brush) new BrushConverter().ConvertFrom("#FF2ECDC6") : Brushes.Gray;
            nameLabel.FontWeight = FontWeights.Bold;

            Label onlineStateLabel = new Label();

            onlineStateLabel.Content    = isOnline?"在线":"离线";
            onlineStateLabel.FontSize   = 14;
            onlineStateLabel.Foreground = isOnline?Brushes.Red:Brushes.Gray;
            nameLabel.FontWeight        = FontWeights.Bold;

            subSPanel.Children.Add(nameLabel);
            subSPanel.Children.Add(onlineStateLabel);

            StackPanel rightSPanel = new StackPanel();

            rightSPanel.Orientation = Orientation.Vertical;
            Label messageTipLabel = new Label();

            messageTipLabel.Name              = userName + "messageTipLabel";
            messageTipLabel.Content           = string.Empty;
            messageTipLabel.FontSize          = 16;
            messageTipLabel.Foreground        = Brushes.Red;
            messageTipLabel.FontWeight        = FontWeights.Bold;
            messageTipLabel.VerticalAlignment = VerticalAlignment.Center;

            rightSPanel.Children.Add(messageTipLabel);

            sPanel.Children.Add(image);
            sPanel.Children.Add(subSPanel);
            sPanel.Children.Add(rightSPanel);

            listBoxItem.Content = sPanel;


            friendListBox.Items.Add(listBoxItem);
        }