示例#1
0
        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);
                });
            }
        }
    }
示例#2
0
        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);
                });
            }
        }