private void INPUTBOX_TextChanged(object sender, TextChangedEventArgs e) { INPUTBOX.ClearValue(TextElement.FontWeightProperty); INPUTBOX.ClearValue(TextElement.ForegroundProperty); TextRange tr = new TextRange(INPUTBOX.Document.ContentStart, INPUTBOX.Document.ContentEnd); string data = tr.Text; MatchCollection matches = Regex.Matches(data, @"[\w]+"); long num = matches.Count; WORDCOUNT.Content = num.ToString() + " Words "; //Get Line number in the richtextbox... //INPUTBOX.CaretPosition = INPUTBOX.CaretPosition.GetLineStartPosition(0); TextPointer caretStart = INPUTBOX.CaretPosition.GetLineStartPosition(0); TextPointer tp = INPUTBOX.Document.ContentStart.GetLineStartPosition(0); int linesCount = 1; while (true) { if (caretStart.CompareTo(tp) < 0) { break; } int result; tp = tp.GetLineStartPosition(1, out result); if (result == 0) { break; } linesCount++; } if (linesCount > 9 && linesCount <= 99) { Thickness tk = INPUTBOX.Margin; tk.Left = 40; INPUTBOX.Margin = tk; SCROLLNUM.Width = 30; } else if (linesCount > 99 && linesCount < 1000) { Thickness tk = INPUTBOX.Margin; tk.Left = 50; INPUTBOX.Margin = tk; SCROLLNUM.Width = 40; } else if (linesCount >= 1000) { MessageBox.Show("Sorry, I cannot deal with so much text!"); } //Display in Another richtextbox while (maxLine < linesCount) { maxLine++; SCROLLNUM.AppendText(Environment.NewLine + maxLine.ToString()); } while (maxLine > linesCount) { maxLine--; SCROLLNUM.Document.Blocks.Remove(SCROLLNUM.Document.Blocks.LastBlock); } }
private void INPUTBOX_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { INPUTBOX.AppendText("\r"); INPUTBOX.CaretPosition = (INPUTBOX.CaretPosition.GetLineStartPosition(1) != null ? INPUTBOX.CaretPosition.GetLineStartPosition(1) : INPUTBOX.Document.ContentEnd); e.Handled = true; } }
private void SELECTALL_Click(object sender, RoutedEventArgs e) { INPUTBOX.SelectAll(); }