Exemplo n.º 1
0
        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);
        }