J'essaie de transformer du texte en lien hypertexte pendant qu'un utilisateur tape WPF RichTextBox.Comment puis-je convertir du texte en lien hypertexte dans un FlowFocument WPT RichTextBox?
Ma première tentative, il consiste à exécuter ce code à chaque 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);
}
Cela fonctionne correctement la première fois qu'un utilisateur entre dans une séquence de 3 lettres majuscules, ABC, mais la création de lien hypertexte échoue avec une exception lorsque une seconde séquence est entrée. En regardant la variable pendant le débogage, il apparaît que les deux TextPointers pointent toujours sur la première séquence.