Beispiel #1
0
        public void MsgCallBack(string msg)
        {
            // Если в сообщении есть ссылка на картинку то вытаскиваем её из тега <ы>
            if (msg.Contains("<ы>"))
            {
                try
                {
                    Regex  rx       = new Regex("<ы>.*</ы>");
                    var    m        = Regex.Match(msg, "<ы>.*</ы>");                                                 // Ищем тег <ы></ы>
                    string imageSrc = m.Value.Replace("<ы>", string.Empty).Replace("</ы>", string.Empty).ToString(); // Вытаскиваем тег из строки
                    msg = rx.Replace(msg, string.Empty);                                                             // Убираем сам тег
                    Image img = new Image();
                    img.Width  = 225;
                    img.Height = 225;
                    img.Source = new BitmapImage(new Uri(imageSrc)); // Пихаем картинку по ссылке в переменную

                    TextBlock tx = new TextBlock();                  // Пихаем в текст блок с переносами и ставим ему ширину как у чата
                    tx.TextWrapping = TextWrapping.Wrap;
                    tx.Width        = ChatList.Width;
                    tx.Text         = msg;

                    ChatList.Items.Add(tx); // Добавляем сначала текст потом картинку
                    ChatList.Items.Add(img);
                }
                catch (Exception e)
                {
                    //System.Windows.MessageBox.Show(e.Message);
                }
            }
            else // Если в сообщении нет ссылки на картинку то просто отправляем его
            {
                // Чтобы работали переносы
                TextBlock tx = new TextBlock();
                tx.TextWrapping = TextWrapping.Wrap; // Говорим текстбоксу чтобы переносил строки
                tx.Width        = ChatList.Width;    // Говорим текстбоксу чтобы подстраивался под ширину чата
                tx.Text         = msg;

                // Добавляем текст с переносами
                ChatList.Items.Add(tx);
                ChatList.ScrollIntoView(ChatList.Items[ChatList.Items.Count - 1]); // Скролим чат на последнее сообщение
            }
        }
Beispiel #2
0
        private void MsgAdded(string obj)
        {
            var item = ChatList.Items[ChatList.Items.Count - 1];

            ChatList.ScrollIntoView(item);
        }