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