bonjour
toujours dans le cadre de ma RichTextBox
j'aimerais coloriser les link (au moins dans un premiers temps)
donc
imaginanom que j'ai le texte suivante dedans
si j'ai le code suivant dans TextChanged de la richtextbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5<FlowDocument> <Paragraph> <Run Text="RichTextBox aaaaaaaaaa bbbbbbbbbbbb ccccccccccc toto@gmail.com dddddddddd eeeeeeeeee sdsdfsdfdsfsdf sdfdsfdsdsfdsf sdfsddsfsdf sdsddsfsdds sddsdsfsd sddsdsdsfds sdsddssddfsf sdsddsfdsfddsf sddsdsfdsfds dsdsdsfdsfds sddsdsfdsfdfs sdfsddsdfdsdsf sddsfdsdsffds sddsfdsdsf sddsdsfdsf" /> </Paragraph> </FlowDocument>
et que je tape http:// juste devant ccccccccccc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 TextRange textRange = new TextRange(this.Document.ContentStart, this.Document.ContentEnd); string text = textRange.Text; var linkParser = new Regex(@"\b(?:https?://|www\.)\S+\b", RegexOptions.Compiled | RegexOptions.IgnoreCase); MatchCollection mc = linkParser.Matches(text); foreach (Match m in mc) { TextPointer tp = this.Document.ContentStart; TextPointer start = this.Document.ContentStart.GetPositionAtOffset(m.Index); TextPointer end = this.Document.ContentStart.GetPositionAtOffset(m.Index + m.Length); TextRange tr = new TextRange(start, end); this.Selection.Select(start, end); Console.WriteLine("MATH index = " + m.Index + " > " + m.Value); }
j'ai un decalge de 2 position sur la selection
si vous avez une petite idée
Partager