コード例 #1
0
        private UIElement CreateCSharpCode(string code)
        {
            var panel = new StackPanel();

            panel.Orientation = Orientation.Horizontal;

            var textBlock = new TextBlock();

            textBlock.FontFamily = new FontFamily(fontFamily);
            textBlock.FontSize   = fontSize;
            textBlock.Text       = TextEditor.InteractiveExecution.Behavior.GetReplPrompt();
            panel.Children.Add(textBlock);

            var codeControl = new CsTextEditor(fontFamily, fontSize, indentationSize, highlightingColors);

            codeControl.IsReadOnly = true;
            codeControl.Text       = code;
            codeControl.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
            codeControl.VerticalScrollBarVisibility   = ScrollBarVisibility.Hidden;
            codeControl.Background = Brushes.Transparent;
            panel.Children.Add(codeControl);
            codeControl.PreviewKeyDown += (object sender, KeyEventArgs e) =>
            {
                if (e.Key == Key.Up && e.KeyboardDevice.Modifiers == ModifierKeys.None)
                {
                    if (codeControl.Document.GetLocation(codeControl.CaretOffset).Line == 1)
                    {
                        e.Handled = true;
                        TraversePrevious(codeControl);
                    }
                }
                else if (e.Key == Key.Down && e.KeyboardDevice.Modifiers == ModifierKeys.None)
                {
                    if (codeControl.Document.GetLocation(codeControl.CaretOffset).Line == codeControl.LineCount)
                    {
                        e.Handled = true;
                        TraverseNext(codeControl);
                    }
                }
            };

            if (previousCommands.Count == 0 || previousCommands.Last() != code)
            {
                previousCommands.Add(code);
                previousCommandsIndex = previousCommands.Count;
            }

            return(panel);
        }
コード例 #2
0
        private UIElement CreateCSharpCode(string code)
        {
            var panel = new StackPanel();

            panel.Orientation = Orientation.Horizontal;

            var textBlock = new TextBlock();

            textBlock.FontFamily = new FontFamily("Consolas");
            textBlock.FontSize   = 14;
            textBlock.Text       = InteractiveExecution.DefaultPrompt;
            panel.Children.Add(textBlock);

            var codeControl = new CsTextEditor();

            codeControl.IsEnabled = false;
            codeControl.Text      = code;
            codeControl.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
            codeControl.VerticalScrollBarVisibility   = ScrollBarVisibility.Hidden;
            codeControl.Background = Brushes.Transparent;
            panel.Children.Add(codeControl);

            return(panel);
        }