/// <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); }
/// <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); }