Apply Syntax Highlighting in a Text Control : RichTextBox « Windows Presentation Foundation « VB.Net Tutorial






<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.vb
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Documents
Imports System.Windows.Media

Namespace WpfApplication1

  Public Partial Class Window1
    Inherits Window
    Public Sub New()
      InitializeComponent()
    End Sub

    Private Sub RichTextBox_TextChanged(sender As Object, e As TextChangedEventArgs)

      Dim textRange As New TextRange(rtbTextContent.Document.ContentStart, rtbTextContent.Document.ContentEnd)
      RemoveHandler rtbTextContent.TextChanged, AddressOf RichTextBox_TextChanged
      textRange.ClearAllProperties()
      ApplyFormatting()
      AddHandler rtbTextContent.TextChanged, AddressOf RichTextBox_TextChanged
    End Sub

    Private Sub ApplyFormatting()
      Dim tp As TextPointer = rtbTextContent.Document.ContentStart
      tp = FindNextString(tp)

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

      Dim tokenTextRange As New TextRange(tp, tp.GetPositionAtOffset(1, LogicalDirection.Forward))

      tokenTextRange.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Blue)
    End Sub

    Private Function FindNextString(tp As TextPointer) As TextPointer
      Dim buffer As Char() = New Char(0) {}
      tp.GetTextInRun(LogicalDirection.Forward, buffer, 0, 1)
      Return tp
    End Function
  End Class
End Namespace
WPF Apply Syntax Highlighting In A Text Control








16.17.RichTextBox
16.17.1.Programmatically Insert Text into a RichTextBoxProgrammatically Insert Text into a RichTextBox
16.17.2.Get selected text from RichTextBox by using RichTextBox.Selection.TextGet selected text from RichTextBox by using RichTextBox.Selection.Text
16.17.3.Get Caret Position in a RichTextBox by using RichTextBox.CaretPosition.GetPositionAtOffsetGet Caret Position in a RichTextBox by using RichTextBox.CaretPosition.GetPositionAtOffset
16.17.4.Get the content from the rich text box.Get the content from the rich text box.
16.17.5.Add / Remove TextChanged event for RichTextBoxAdd / Remove TextChanged event for RichTextBox
16.17.6.Clear any formatting applied to the text with TextRange.ClearAllProperties();Clear any formatting applied to the text with TextRange.ClearAllProperties();
16.17.7.Apply Syntax Highlighting in a Text ControlApply Syntax Highlighting in a Text Control
16.17.8.Select all text from RichTextBox and cutSelect all text from RichTextBox and cut
16.17.9.Use Application Command to edit RichTextBoxUse Application Command to edit RichTextBox
16.17.10.Load or Save the Content of a RichTextBoxLoad or Save the Content of a RichTextBox
16.17.11.Display a Password Entry Box and get the inputDisplay a Password Entry Box and get the input