Exemple #1
0
 void ChatView_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     if (e.Action == NotifyCollectionChangedAction.Add)
     {
         ConversationList.ScrollIntoView(e.NewItems[0]);
     }
 }
        private async void Randon_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var uri      = new Uri("https://baconipsum.com/api/?type=meat-and-filler&paras=5&format=text");
                var client   = new HttpClient();
                var response = await client.GetAsync(uri);

                var respoonsestring = await response.Content.ReadAsStringAsync();

                var mesage = new Message
                {
                    Body      = respoonsestring,
                    Alignment = HorizontalAlignment.Left,
                    Color     = (Windows.UI.Color)Application.Current.Resources["SystemAccentColorDark1"],
                    DateTime  = DateTime.Now.ToString("MM/dd, HH:mm"),
                    Margin    = new Thickness(10, 10, 60, 10)
                };
                Conversation.Add(mesage);
                ConversationList.ScrollIntoView(mesage);
            }
            catch
            {
            }
        }
        private async void GetConvo(MessageThread messagethread)
        {
            reader = messagethread.ChatConversation.GetMessageReader();
            list   = await reader.ReadBatchAsync();

            foreach (var item in list)
            {
                if (item.IsIncoming)
                {
                    var mesage = new Message
                    {
                        Body      = item.Body,
                        Alignment = HorizontalAlignment.Left,
                        Color     = (Windows.UI.Color)Application.Current.Resources["SystemAccentColorDark1"],
                        DateTime  = item.LocalTimestamp.DateTime.ToString("MM/dd, HH:mm"),
                        Margin    = new Thickness(10, 10, 60, 10)
                    };
                    Conversation.Add(mesage);
                }
                else
                {
                    var mesage = new Message
                    {
                        Body      = item.Body,
                        Alignment = HorizontalAlignment.Left,
                        Color     = (Windows.UI.Color)Application.Current.Resources["SystemAccentColorLight1"],
                        DateTime  = item.LocalTimestamp.DateTime.ToString("MM/dd, HH:mm"),
                        Margin    = new Thickness(60, 10, 10, 10)
                    };
                    Conversation.Add(mesage);
                }
            }
            var ordered = Conversation.OrderBy(x => x.DateTime);

            ConversationList.ItemsSource = ordered;
            ConversationList.ScrollIntoView(ordered.Last());
            if (messagethread.ChatConversation.Participants.Count > 1)
            {
                var list   = new List <MenuFlyoutItem>();
                var flyout = new MenuFlyout();
                for (int i = 0; i > messagethread.ChatConversation.Participants.Count; i++)
                {
                    var flyitem = new MenuFlyoutItem
                    {
                        Text = messagethread.ChatConversation.Participants[i],
                        Tag  = messagethread.ChatConversation.Participants[i]
                    };
                    flyitem.Tapped += Flyitem_Tapped;
                    flyout.Items.Add(flyitem);
                }
                CallButton.Flyout = flyout;
            }
            else
            {
                CallButton.Tag    = messagethread.ChatConversation.Participants.FirstOrDefault();
                CallButton.Click += CallButton_Click;
            }
        }
        private void SendButton_RightTapped(object sender, RightTappedRoutedEventArgs e)
        {
            var mesage = new Message
            {
                Body      = MessageTB.Text,
                Alignment = HorizontalAlignment.Left,
                Color     = (Windows.UI.Color)Application.Current.Resources["SystemAccentColorDark1"],
                DateTime  = DateTime.Now.ToString("MM/dd, HH:mm"),
                Margin    = new Thickness(10, 10, 60, 10)
            };

            Conversation.Add(mesage);
            ConversationList.ScrollIntoView(mesage);
            MessageTB.Text = "";
        }
        private void AddMessage(string text)
        {
            var mesage = new Message
            {
                Body      = text,
                Alignment = HorizontalAlignment.Right,
                Color     = (Windows.UI.Color)Application.Current.Resources["SystemAccentColorLight1"],
                DateTime  = DateTime.Now.ToString("MM/dd, HH:mm"),
                Margin    = new Thickness(60, 10, 10, 10)
            };

            Conversation.Add(mesage);
            ConversationList.ScrollIntoView(mesage);
            MessageTB.Text = "";
        }