在richtextbox WPF中的当前插入位置插入带有linkText的超链接

时间:2014-03-20 14:27:01

标签: wpf wpf-controls wpftoolkit wpf-4.0 wpf-4.5

我想将带有displayText的超链接插入到当前插入位置的richtextbox中,当用户点击Ok按钮时,我显示一个弹出窗口供用户输入linkURL和linkText带有显示文本的超链接应插入RichTextBox中的当前插入位置。

提前致谢。

1 个答案:

答案 0 :(得分:1)

测试此代码

        Hyperlink link = new Hyperlink();
        link.IsEnabled = true;
        link.Inlines.Add(" Microsoft ");
        link.NavigateUri = new Uri("http://www.microsoft.com");

        var allRang = new TextRange(Rich.Document.ContentStart,Rich.Document.ContentEnd);
        if (allRang.Start.Parent is Run)
        {
            var run = allRang.Start.Parent as Run;
            var runBefore =
                           new Run(new TextRange(run.ContentStart, Rich.CaretPosition).Text);
            var runAfter =
                           new Run(new TextRange(Rich.CaretPosition, run.ContentEnd).Text);

            if (allRang.Start.Paragraph != null)
            {
                allRang.Start.Paragraph.Inlines.Add(runBefore);
                allRang.Start.Paragraph.Inlines.Add(link);

                allRang.Start.Paragraph.Inlines.Add(runAfter);
                allRang.Start.Paragraph.Inlines.Remove(run);
            }
        }