【问题标题】:WPF RichTextBox - Add a hyperlink without line break?WPF RichTextBox - 添加没有换行符的超链接?
【发布时间】:2014-11-15 04:10:47
【问题描述】:

我的代码在每个链接之前添加了一个换行符。如何在不添加换行符的情况下添加超链接?这是我的代码:

        String link = "http://google.de";

        if (Uri.IsWellFormedUriString(link, UriKind.RelativeOrAbsolute))
        {
            Paragraph paragraph = new Paragraph();
            paragraph.Inlines.Add(link);

            Hyperlink hyper = new Hyperlink(paragraph.ContentStart, paragraph.ContentEnd);
            hyper.NavigateUri = new Uri(new TextRange(paragraph.ContentStart, paragraph.ContentEnd).Text);
            paragraph.Margin = new Thickness(0);
            richTextBox1.Document.Blocks.Add(paragraph);
        }

【问题讨论】:

    标签: c# wpf hyperlink richtextbox


    【解决方案1】:

    换行符完全由段落​​创建。您可以使用其他一些 Inline 元素而不是 Block 元素创建一个新的 Hyperlink。代码应该是这样的:

    if (Uri.IsWellFormedUriString(link, UriKind.RelativeOrAbsolute)) {
            //check if there is any paragraph, if not then add a new one            
            Paragraph para = null;
            if(richTextBox1.Blocks.Count == 0 || 
               !(richTextBox1.Blocks.LastBlock is Paragraph)) {
                para = new Paragraph();
                para.Margin = new Thickness(0);
                richTextBox1.Blocks.Add(para);
            } else para = richTextBox1.Blocks.LastBlock;            
    
            Hyperlink hyper = new Hyperlink(new Run(link));
            hyper.NavigateUri = new Uri(link);
            //add hyperlink to the last Paragraph
            para.Inlines.Add(hyper);            
    }
    

    【讨论】:

      猜你喜欢
      • 2020-07-20
      • 2013-05-06
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      相关资源
      最近更新 更多