public void AddMessage(StackPanel panel, MessageDTO message) { bool isSelf = false; if (Account.Id == message.DeliverId) { isSelf = true; } AccountDTO account = messengerClient.GetUserById(message.DeliverId.Value); StackPanel messagePanel = new StackPanel { Orientation = Orientation.Horizontal, Margin = new Thickness(10) }; StackPanel panel2 = new StackPanel { VerticalAlignment = VerticalAlignment.Top }; StackPanel panel3 = new StackPanel { Orientation = Orientation.Horizontal }; panel3.Children.Add(new TextBlock { Foreground = Brushes.White, Margin = new Thickness(5), Text = account.Name }); panel3.Children.Add(new TextBlock { Foreground = Brushes.Gray, Margin = new Thickness(5) }); (panel3.Children[1] as TextBlock).Text = message.Data.ToString().Remove(5, 5).Remove(11); StackPanel panel4 = new StackPanel { Margin = new Thickness(5) }; panel4.Children.Add(new TextBlock { Foreground = Brushes.LightCyan, Width = panel.Width / 2, TextWrapping = TextWrapping.Wrap, Text = message.Content, FontSize = 17 }); ms = new MemoryStream(account.Image); panel2.Children.Add(panel3); panel2.Children.Add(panel4); if (!isSelf) { messagePanel.Children.Add(new Ellipse { Height = 70, Width = 70, VerticalAlignment = VerticalAlignment.Top, Fill = new ImageBrush { Stretch = Stretch.UniformToFill, ImageSource = BitmapFrame.Create(ms) } }); messagePanel.Children.Add(panel2); } else { messagePanel.HorizontalAlignment = HorizontalAlignment.Right; messagePanel.Margin = new Thickness(10, 10, 30, 10); panel3.HorizontalAlignment = HorizontalAlignment.Right; (panel4.Children[0] as TextBlock).TextAlignment = TextAlignment.Right; UIElement temp1 = panel3.Children[0]; UIElement temp2 = panel3.Children[1]; panel3.Children.Clear(); panel3.Children.Add(temp2); panel3.Children.Add(temp1); messagePanel.Children.Add(panel2); messagePanel.Children.Add(new Ellipse { Height = 70, Width = 70, VerticalAlignment = VerticalAlignment.Top, Fill = new ImageBrush { Stretch = Stretch.UniformToFill, ImageSource = BitmapFrame.Create(ms) } }); } panel.Children.Add(messagePanel); }