【问题标题】:Insert hyperlink with linkText at current caret position in richtextbox WPF在richtextbox WPF中的当前插入符号位置插入带有linkText的超链接
【发布时间】:2014-03-20 14:27:00
【问题描述】:

我想在当前插入符号位置的富文本框中插入带有 displayText 的超链接,当用户单击“确定”按钮时,我正在显示一个弹出窗口供用户输入 linkURL 和 linkText 带有显示文本的超链接应该插入到 RichTextBox 中的当前插入符号位置。

提前致谢。

【问题讨论】:

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


    【解决方案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);
                }
            }
    

    【讨论】:

    • 嗨 M SH GOL,感谢您的回复,但我们现在正在使用第三方工具进行 HTML 编辑,因此我们停止寻找解决此问题的方法,在空闲时间我会尝试测试代码您已提供并通知您。谢谢,阿卜杜勒·马丁。
    • 嗨 M SH GOL,超链接第一次正确插入,但之后没有,假设在 Microsoft 超链接后我再次添加它就像这样 Microsoft Microsoft Microsoft Microsoft 谢谢。
    猜你喜欢
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多