WPF VB.Net

  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1" Height="600" Width="800">
  
    
  


//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