1
我想在用户在WPF RichTextBox中输入时将某些文本转换为超链接。如何将文本转换为WPF RichTextBox FlowDocument中的超链接?
我第一次尝试在它涉及到每个KEYUP运行此代码:
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);
}
这正常运行的用户第一次输入的3个大写字母,ABC的顺序,但超链接创建失败与一个异常时,输入第二个序列。在调试时查看变量,看起来两个TextPointers始终指向第一个序列。