private void UpdateMessagesEx2(Discord.IMessage[] msgs) { if (!Dispatcher.CheckAccess()) { Dispatcher.Invoke(() => UpdateMessagesEx2(msgs)); return; } MessagesPanel.Children.Clear(); // https://softwareengineering.stackexchange.com/questions/287369/beginners-c-question-about-array-reverse // I used foreach here previously for (int i = 0; i < msgs.Length; i++) { var msg = msgs[i]; Message.Message a = new Message.Message(); a.TimeStamp = msg.Timestamp.DateTime; a.RelatedUser = msg.Author; a.AppendMessage(msg); this.AddMessage(a); } MessagesScroll.ScrollToEnd(); // fix me }
public void AddMessage(Message.Message e) { var related = GetRelatedMessage(e); if (related == null || related.TimeStamp.AddMinutes(3) < e.TimeStamp) { MessagesPanel.Children.Add(GetSeparator()); e.Margin = new Thickness(0, 5, 0, 5); MessagesPanel.Children.Add(e); } else { foreach (var msg in e.MessagesPanel.Children) { var m = msg as Message.SingleMessage; related.AppendMessage(m.Message); } } MessagesScroll.ScrollToEnd(); // fix me https://github.com/discord365/Discord365/issues/27 }
private void scrollToBottom() { MessagesScroll.UpdateLayout(); MessagesScroll.ScrollToVerticalOffset(MessagesScroll.ScrollableHeight); }
private void scrollToBottom() { MessagesScroll.UpdateLayout(); MessagesScroll.ChangeView(1, MessagesScroll.ExtentHeight, 1); }