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始終指向第一個序列。