private void WriteOutput(string text, OutputMessageLevel level, bool removeLastItem = false) { var messageColor = level switch { OutputMessageLevel.Normal => Colors.Black, OutputMessageLevel.Informational => Colors.Gray, OutputMessageLevel.Success => Colors.Green, OutputMessageLevel.Warning => Colors.Goldenrod, OutputMessageLevel.Error => Colors.Red, _ => Colors.Gray }; if (Dispatcher.CheckAccess()) { if (removeLastItem && statusMessages.Count > 0) { statusMessages.Remove(statusMessages.LastOrDefault()); } var message = new OutputMessage { Message = text, MessageColor = messageColor.ToSystemDrawingColor() }; statusMessages.Add(message); StatusListBox.ScrollIntoView(message); } else { Dispatcher.Invoke(() => { if (removeLastItem && statusMessages.Count > 0) { statusMessages.Remove(statusMessages.LastOrDefault()); } var message = new OutputMessage { Message = text, MessageColor = messageColor.ToSystemDrawingColor() }; statusMessages.Add(message); StatusListBox.ScrollIntoView(message); }); } } }
private void WriteOutput(string text, OutputMessageLevel level, bool removeLastItem = false) { var messageColor = Colors.Gray; switch (level) { case OutputMessageLevel.Normal: messageColor = Colors.Black; break; case OutputMessageLevel.Informational: messageColor = Colors.Gray; break; case OutputMessageLevel.Success: messageColor = Colors.Green; break; case OutputMessageLevel.Warning: messageColor = Colors.Goldenrod; break; case OutputMessageLevel.Error: messageColor = Colors.Red; break; } if (this.Dispatcher.CheckAccess()) { if (removeLastItem && StatusMessages.Count > 0) { StatusMessages.Remove(StatusMessages.LastOrDefault()); } var message = new OutputMessage { Message = text, MessageColor = messageColor }; StatusMessages.Add(message); StatusListBox.ScrollIntoView(message); } else { this.Dispatcher.Invoke(() => { if (removeLastItem && StatusMessages.Count > 0) { StatusMessages.Remove(StatusMessages.LastOrDefault()); } var message = new OutputMessage { Message = text, MessageColor = messageColor }; StatusMessages.Add(message); StatusListBox.ScrollIntoView(message); }); } }