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(); }); }