public static String FlowDocument2Text(FlowDocument doc) { String text = new TextRange(doc.ContentStart, doc.ContentEnd).Text; if (text.EndsWith("\r\n")) { text = text.Substring(0, text.Length - 2); } return text; }
private void richTextBox1_PreviewKeyDown(object sender, KeyEventArgs e) { if (lstOptions.Visibility == Visibility.Visible) { lstOptions.Focus(); return; } if (!IsCaretPositionValid()) { this.richTextBox1.CaretPosition = this.richTextBox1.CaretPosition.DocumentEnd; return; } if (e.Key == Key.Space) { var command = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0), richTextBox1.CaretPosition).Text; command = command.Substring(command.IndexOf(">") + 1).Trim(); ShowOptions(command); return; } if (e.Key == Key.Enter) { var command = GetCommand(); RunCommand(command); e.Handled = true; } else if (e.Key == Key.Up) { GetCommand(--commandIdx); e.Handled = true; } else if (e.Key == Key.Down) { GetCommand(++commandIdx); e.Handled = true; } else if (e.Key == Key.Escape) { ChangePrompt("", BRUSH_PROMPT); lstOptions.Visibility = Visibility.Collapsed; } else if (e.Key == Key.Back) { var text = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0), richTextBox1.CaretPosition).Text; if (text.EndsWith(">")) e.Handled = true; } }
private void richTextBox1_PreviewKeyDown(object sender, KeyEventArgs e) { if (lstOptions.Visibility == Visibility.Visible) { if (e.Key == Key.Escape) { this.HideOptions(); } else { lstOptions.Focus(); } return; } if (!IsCaretPositionValid()) { this.richTextBox1.CaretPosition = this.richTextBox1.CaretPosition.DocumentEnd; return; } if (e.Key == Key.Space) { var command = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0), richTextBox1.CaretPosition).Text; command = command.Substring(command.IndexOf(">") + 1).Trim(); ShowOptions(command); return; } if (e.Key == Key.Enter) { var command = GetCommand(); if (this.IsProcessRunning) { this.WriteInput(command); } else { RunCommand(command); e.Handled = true; } } else if (e.Key == Key.Up) { GetCommand(--commandIdx); e.Handled = true; } else if (e.Key == Key.Down) { GetCommand(++commandIdx); e.Handled = true; } else if (e.Key == Key.Escape) { ChangePrompt("", BRUSH_PROMPT); this.HideOptions(); } else if (e.Key == Key.Back) { var text = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0), richTextBox1.CaretPosition).Text; if (text.EndsWith(">") && text.IndexOf(">") == text.Length - 1) e.Handled = true; } else if (e.Key == Key.C && Keyboard.Modifiers == ModifierKeys.Control) { if (IsProcessRunning) { SendShutdownToConsole(); e.Handled = true; } } else if (lstOptions.Visibility == Visibility.Visible) { //lstOptions.KeyDown() } }
private void DataObjectPastingHandler(object sender, DataObjectPastingEventArgs e) { object data = e.DataObject.GetData(DataFormats.UnicodeText); if (data == null) return; string str1 = data.ToString(); this.richTextBox.Selection.Text = string.Empty; string[] strArray = str1.Split(new char[1] { ' ' }); if (strArray != null && strArray.Length > 0) { for (int index = 0; index < strArray.Length; ++index) { string str2 = strArray[index]; TextPointer positionAtOffset = this.richTextBox.CaretPosition.GetPositionAtOffset(0, LogicalDirection.Forward); if (positionAtOffset != null) this.richTextBox.CaretPosition = positionAtOffset; string text = new TextRange(this.richTextBox.Document.ContentStart, this.richTextBox.CaretPosition).Text; if (this.richTextBox.CaretPosition != null) { if (str2.Contains("http://") || str2.Contains("www.") || str2.Contains("https://")) { if (text.EndsWith(" ")) this.richTextBox.CaretPosition.InsertTextInRun(string.Format("{0} ", (object)str2)); else this.richTextBox.CaretPosition.InsertTextInRun(string.Format(" {0} ", (object)str2)); this.performURLParsing = true; this.adornedElement_PreviewKeyUp((object)this.richTextBox, (KeyEventArgs)null); } else if (index == strArray.Length - 1) this.richTextBox.CaretPosition.InsertTextInRun(string.Format("{0}", (object)str2)); else this.richTextBox.CaretPosition.InsertTextInRun(string.Format("{0} ", (object)str2)); } } } e.CancelCommand(); }
private void richTextBox1_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Space) { var command = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0), richTextBox1.CaretPosition).Text; command = command.Substring(command.IndexOf(">") + 1).Trim(); ShowOptions(command); return; } else if (e.Key == Key.Tab || e.Key == Key.Down) { if (lstOptions.Visibility == Visibility.Visible) { lstOptions.Focus(); return; } } else { lstOptions.Visibility = Visibility.Collapsed; } if (e.Key == Key.Enter) { var command = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0), richTextBox1.CaretPosition.GetLineStartPosition(1) ?? richTextBox1.CaretPosition.DocumentEnd).Text; command = command.Replace("\r", "").Replace("\n", ""); RunCommand(command); e.Handled = true; } else if (e.Key == Key.Up) { GetCommand(--commandIdx); e.Handled = true; } else if (e.Key == Key.Down) { GetCommand(++commandIdx); e.Handled = true; } else if (e.Key == Key.Escape) { ChangePrompt("", new SolidColorBrush(Colors.Black)); } else if (e.Key == Key.Back) { var text = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0), richTextBox1.CaretPosition).Text; if (text.EndsWith(">")) e.Handled = true; } else { var text = new TextRange(richTextBox1.CaretPosition, richTextBox1.CaretPosition.DocumentEnd).Text; if (text.Contains(">")) //e.Handled = true; this.richTextBox1.CaretPosition = this.richTextBox1.CaretPosition.DocumentEnd; } }
private void RichTextBox_TextChanged(object sender, TextChangedEventArgs e) { if (_isLoading) return; _isLoading = true; RichTextBox t = sender as RichTextBox; if (t == null) return; BlockCollection bc = t.Document.Blocks; foreach (Block b in bc) { if (b is Paragraph) { var para = b as Paragraph; string text = new TextRange(para.ContentStart, para.ContentEnd).Text; bool isProject = text.EndsWith(":"); bool isTask = text.StartsWith("-") || text.StartsWith("*"); bool isNote = !isProject && !isTask; bool isDone = text.Contains("@done"); para.Foreground = isNote ? Brushes.DimGray : Brushes.Black; para.FontSize = isProject ? 16 : 12; para.TextDecorations = isDone ? TextDecorations.Strikethrough : null; } } _isLoading = false; }