Я пытаюсь превратить какой-то текст в гиперссылку, когда пользователь печатает в WPF RichTextBox.
Моя первая попытка заключается в запуске этого кода при каждом вводе ключа:
Regex r = new Regex("[A-Z]{3}");
FlowDocument doc = this.inputBox.Document;
String text = new TextRange(doc.ContentStart, doc.ContentEnd).Text;
foreach (Match m in r.Matches(text))
{
TextPointer start = doc.ContentStart.GetPositionAtOffset(m.Index + 2);
TextPointer end = doc.ContentStart.GetPositionAtOffset(m.Index + m.Length + 2);
Hyperlink sp = new Hyperlink(start, end);
}
Это работает правильно, когда пользователь вводит последовательность из трех заглавных букв, ABC, но создание гиперссылки завершается ошибкой, за исключением того, что вводится вторая последовательность.Глядя на переменную во время отладки, кажется, что два TextPointer продолжают указывать на первую последовательность.