есть код ниже, но он не работчий — Target.RichTextBox.Selection.Start.GetPositionAtOffset(index + targetWord.Length)
как сделать что бы после замены первого слова Selection рендж уменьшался (исклбючал первое слово)?
private void ReplaceWord(string origWord, string targetWord)
{
TextRange textRange = Target.RichTextBox.Selection;
var index = textRange.Text.IndexOf(origWord);
string rtf;
using (var memoryStream = new MemoryStream())
{
textRange.Save(memoryStream, DataFormats.Xaml);
rtf = ASCIIEncoding.UTF8.GetString(memoryStream.ToArray());
}
var regex = new Regex($"\\b{origWord}\\b");
var newText = regex.Replace(rtf, targetWord, 1);
using (MemoryStream stream = new MemoryStream(ASCIIEncoding.UTF8.GetBytes(newText)))
{
Target.RichTextBox.Selection.Load(stream, DataFormats.Xaml);
}
var start = Target.RichTextBox.Selection.Start.GetPositionAtOffset(index + targetWord.Length);
var end = Target.RichTextBox.Selection.End;
Target.RichTextBox.Selection.Select(start, end);
}