Beispiel #1
0
        public ChatWindow(IWindowServer windowServer, IClient client)
        {
            ViewModel = new ChatViewModel(windowServer, client);
            InitializeComponent();

            ViewModel.Messages.CollectionChanged += (sender, e) =>
            {
                MessageListView.ScrollIntoView(e.NewItems[e.NewItems.Count - 1]);
            };

            var messageCollectionView = CollectionViewSource.GetDefaultView(MessageListView.ItemsSource) as CollectionView;

            Debug.Assert(messageCollectionView != null, nameof(messageCollectionView) + " != null");
            messageCollectionView.Filter = (item) =>
            {
                var message  = (ChatMessage)item;
                var roomName = message.Room;
                if (roomName == null || roomName.Equals("[System]"))
                {
                    return(true);
                }
                var selectedItem = JoinedRoomList.SelectedItem;
                return(roomName.Equals(selectedItem));
            };
        }
Beispiel #2
0
        private void ScrollToEnd()
        {
            if (ServiceManager.Instance.Dispatcher.Thread != Thread.CurrentThread)
            {
                ServiceManager.Instance.Dispatcher.BeginInvoke((Action)(ScrollToEnd));
                return;
            }

            MessageListView.SelectedIndex = MessageListView.Items.Count - 1;
            MessageListView.ScrollIntoView(MessageListView.SelectedItem);
        }
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            if (!(string.IsNullOrEmpty(SendBox.Text) || string.IsNullOrWhiteSpace(SendBox.Text)))
            {
                MessageInterface.Message messageSent = new MessageInterface.Message(SendBox.Text, true, DateTime.Now);
                talkWindow.AddMessage(messageSent);
                MessageInterface.Message messageReceived = new MessageInterface.Message();

                messageReceived.Content = await connector.QueryAndStore(messageSent.Content);

                //messageReceived.Content = Model.Record.replies.Last();
                messageReceived.IsSelf   = false;
                messageReceived.SentTime = DateTime.Now;
                talkWindow.AddMessage(messageReceived);
                MessageListView.SelectedIndex = MessageListView.Items.Count - 1;
                MessageListView.ScrollIntoView(MessageListView.SelectedItem);
            }
            SendBox.Text = string.Empty;
        }
Beispiel #4
0
        private void ScrollToEnd()
        {
            //************************************************************************************************************************************
            // When Chat conversation is updated then it will scroll to end of chat so recent message should display.
            //************************************************************************************************************************************

            if (ServiceManager.Instance.Dispatcher.Thread != Thread.CurrentThread)
            {
                ServiceManager.Instance.Dispatcher.BeginInvoke((Action)(ScrollToEnd));
                return;
            }

            MessageListView.SelectedIndex = MessageListView.Items.Count - 1;
            var item = MessageListView.SelectedItem as VATRPChatMessage;

            if (item != null)
            {
                MessageListView.ScrollIntoView(item);
            }
        }
 public void Scroll(int index)
 {
     MessageListView.SelectedIndex = index;
     MessageListView.ScrollIntoView(MessageListView.SelectedItem);
 }
 public void ScrollStart()
 {
     _countZero = 1;
     MessageListView.SelectedIndex = MessageListView.Items.Count - 1;
     MessageListView.ScrollIntoView(MessageListView.SelectedItem);
 }