Пример #1
0
 public void PostMessage(string msg)
 {
     if (this.Dispatcher.CheckAccess())
     {
         MessageDisplay.AppendText(Environment.NewLine);
         MessageDisplay.AppendText(msg);
         MessageDisplay.ScrollToEnd();
     }
     else
     {
         this.Dispatcher.Invoke((Action)(() =>
         {
             MessageDisplay.AppendText(Environment.NewLine);
             MessageDisplay.AppendText(msg);
             MessageDisplay.ScrollToEnd();
         }));
     }
 }
        private async Task Display(string message, double timeTaken, TraceLevel level)
        {
            await MessageDisplay.Dispatcher.InvokeAsync(() =>
            {
                string timeMessage = $"{DateTime.UtcNow.ToString("o")}";

                Paragraph p  = new Paragraph(new Run(timeMessage));
                p.Foreground = m_Brush;
                MessageDisplay.Document.Blocks.Add(p);
                p.Margin = new Thickness(0, 10, 0, 0);

                timeMessage = $"Time taken : {timeTaken} (ms)";

                p            = new Paragraph(new Run(timeMessage));
                p.Foreground = m_Brush;
                MessageDisplay.Document.Blocks.Add(p);
                p.Margin = new Thickness(0);

                if (level == TraceLevel.Error)
                {
                    p            = new Paragraph(new Run(message));
                    p.Foreground = Brushes.Red;
                    MessageDisplay.Document.Blocks.Add(p);
                }
                else
                {
                    p            = new Paragraph(new Run(message));
                    p.Foreground = Brushes.Black;
                    MessageDisplay.Document.Blocks.Add(p);
                }
                p.Margin       = new Thickness(0);
                int totalCount = MessageDisplay.Document.Blocks.Count;

                if (totalCount > m_MessageCount)
                {
                    for (int i = totalCount - m_MessageCount; i > 0; i--)
                    {
                        MessageDisplay.Document.Blocks.Remove(MessageDisplay.Document.Blocks.ElementAt(i));
                    }
                }
                MessageDisplay.ScrollToEnd();
            });
        }
        private async Task Display(string message)
        {
            await MessageDisplay.Dispatcher.InvokeAsync(() =>
            {
                string timeMessage = $"{DateTime.UtcNow.ToString("o")}";

                Paragraph p  = new Paragraph(new Run(timeMessage));
                p.Foreground = m_Brush;
                MessageDisplay.Document.Blocks.Add(p);
                p.Margin = new Thickness(0, 10, 0, 0);

                p            = new Paragraph(new Run(message));
                p.Foreground = Brushes.Black;
                MessageDisplay.Document.Blocks.Add(p);
                p.Margin = new Thickness(0);

                MessageDisplay.ScrollToEnd();
            });
        }