void controller_BroadcastReceived(User user, string content) { UIDispatcher.Invoke(() => { Run r = new Run(user.Name + ": " + content + "\n"); r.Foreground = UserVM.GetChatBrush(user.Name); if (Scroll.ScrollableHeight - Scroll.ExtentHeight < 5) { chat.Inlines.Add(r); Scroll.ScrollToEnd(); } else chat.Inlines.Add(r); }); }
private TabItem GetChatTab(User user) { TabItem ti; if (!chatTabs.ContainsKey(user.Id)) { ti = new TabItem(); ti.Header = new { Name = user.Name, CloseCommand = new SimpleCommand(() => { whom.Items.Remove(ti); chatTabs.Remove(user.Id); }) }; ti.Content = new TextBox(); chatTabs.Add(user.Id, ti); whom.Items.Add(ti); } else ti = chatTabs[user.Id]; return ti; }
internal void NewChat(User user) { whom.SelectedItem = GetChatTab(user); }