示例#1
0
        private void ConsoleMessageChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            ConsoleMessage message = (ConsoleMessage)e.NewValue;

            switch (message.Level)
            {
            case ConsoleMessage.MessageLevel.Log:
                MessageBackground = new SolidColorBrush(Colors.Transparent);
                MessageForeground = new SolidColorBrush(Color.FromRgb(0xD5, 0xD5, 0xD5));
                break;

            case ConsoleMessage.MessageLevel.Warning:
                MessageBackground = new SolidColorBrush(Color.FromRgb(0x33, 0x2B, 0x00));
                MessageForeground = new SolidColorBrush(Color.FromRgb(0xFF, 0xDD, 0x9E));
                break;

            case ConsoleMessage.MessageLevel.Error:
                MessageBackground = new SolidColorBrush(Color.FromRgb(0x29, 0x00, 0x00));
                MessageForeground = new SolidColorBrush(Color.FromRgb(0xFF, 0x80, 0x80));
                break;
            }

            if (message.Source is FileSource fileSource)
            {
                Expander.Visibility = System.Windows.Visibility.Visible;

                ExpanderHeader.Text  = message.Message;
                ExpanderContent.Text = $"at: {fileSource.Path}:{fileSource.Line}";
            }
            else if (message.Source is InteropSource interopSource)
            {
                Expander.Visibility = System.Windows.Visibility.Visible;

                ExpanderHeader.Text  = message.Message;
                ExpanderContent.Text = $"Error in the following code:\n{interopSource.Code}";
            }
            else
            {
                SimpleContent.Visibility = System.Windows.Visibility.Visible;

                SimpleContent.Text = message.Message;
            }
        }
示例#2
0
        public void AddMessage(ConsoleMessage message)
        {
            Dispatcher.Invoke(() =>
            {
                if (!_consoleEnabled)
                {
                    Root.Visibility = Visibility.Visible;
                    _consoleEnabled = true;
                }

                Console.Items.Add(message);

                if (message.Level == ConsoleMessage.MessageLevel.Error)
                {
                    ErrorCount++;
                    if (!ConsoleVisible)
                    {
                        UnseenErrorCount++;
                    }
                }

                ConsoleScrollViewer.ScrollToEnd();
            });
        }