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
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>
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
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);
}
et que je tape http:// juste devant ccccccccccc
j'ai un decalge de 2 position sur la selection

si vous avez une petite idée