Add / Remove TextChanged event for RichTextBox : RichTextBox « Windows Presentation Foundation « C# / C Sharp





Add / Remove TextChanged event for RichTextBox

Add / Remove TextChanged event for RichTextBox
  

<Window x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1" Height="600" Width="800">
  <Grid>
    <RichTextBox x:Name="rtbTextContent" TextChanged="RichTextBox_TextChanged" />
  </Grid>
</Window>
//File:Window.xaml.cs
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;

namespace WpfApplication1
{

    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
        
        private void RichTextBox_TextChanged(object sender, TextChangedEventArgs e)
        {

            TextRange textRange = new TextRange(rtbTextContent.Document.ContentStart, rtbTextContent.Document.ContentEnd);
            rtbTextContent.TextChanged -= RichTextBox_TextChanged;
            textRange.ClearAllProperties();
            ApplyFormatting();
            rtbTextContent.TextChanged += RichTextBox_TextChanged;
        }

        private void ApplyFormatting()
        {
            TextPointer tp = rtbTextContent.Document.ContentStart;
            tp = FindNextString(tp);

            TextPointer textRangeEnd = tp.GetPositionAtOffset(1, LogicalDirection.Forward);

            TextRange tokenTextRange = new TextRange(tp, tp.GetPositionAtOffset(1, LogicalDirection.Forward));

            tokenTextRange.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Blue);
        }

        private TextPointer FindNextString(TextPointer tp)
        {
            char[] buffer = new char[1];
            tp.GetTextInRun(LogicalDirection.Forward, buffer, 0, 1);
            return tp;
        }
    }
}

   
    
  










Related examples in the same category

1.Programmatically Insert Text into a RichTextBoxProgrammatically Insert Text into a RichTextBox
2.Get selected text from RichTextBox by using RichTextBox.Selection.TextGet selected text from RichTextBox by using RichTextBox.Selection.Text
3.Get Caret Position in a RichTextBox by using RichTextBox.CaretPosition.GetPositionAtOffsetGet Caret Position in a RichTextBox by using RichTextBox.CaretPosition.GetPositionAtOffset
4.Select all text from RichTextBox and cutSelect all text from RichTextBox and cut
5.Load or Save the Content of a RichTextBoxLoad or Save the Content of a RichTextBox
6.Get the content from the rich text box.Get the content from the rich text box.
7.Apply Syntax Highlighting in a Text ControlApply Syntax Highlighting in a Text Control