or
private void ReplaceAllMatches(RadDocument document, string toSearch, string toReplaceWith){ DocumentTextSearch search = new DocumentTextSearch(document); List<TextRange> rangesTrackingDocumentChanges = new List<TextRange>(); foreach (var textRange in search.FindAll(toSearch)) { TextRange newRange = new TextRange(new DocumentPosition(textRange.StartPosition, true), new documentPosition(textRange.EndPosition, true)); rangesTrackingDocumentChanges.Add(newRange); } RadDocumentEditor docEdit = new RadDocumentEditor(document); foreach (var textRange in rangesTrackingDocumentChanges) { document.CaretPosition.MoveToPosition(textRange.StartPosition); document.DeleteRange(textRange.StartPosition, textRange.EndPosition); StyleDefinition style = new StyleDefinition(); style.SetPropertyValue(Span.ForeColorProperty, Colors.Red); document.Insert(toReplaceWith, style); textRange.StartPosition.Dispose(); textRange.EndPosition.Dispose(); } }<telerik:XamlDataProvider RichTextBox="{Binding ElementName=richTextBox1}" Xaml="{Binding PropertyName, Mode=TwoWay}" /><telerik:RadRichTextBox Name="radRichTextBox"/><telerik:RadWatermarkTextBox Text="{Binding Path=PropertyName, Mode=TwoWay}"/>var startPosition = new DocumentPosition(radRichTextBox.Document.CaretPosition);var endPosition = new DocumentPosition(radRichTextBox.Document.CaretPosition);startPosition.MoveToFirstPositionInDocument();endPosition.MoveToLastPositionInDocument();var text = new TextRange( // TextPointer to the start of content in the RichTextBox. startPosition, // TextPointer to the end of content in the RichTextBox. endPosition).Text;