2014-09-20 1 views
0

Мой код добавляет разрыв строки перед каждой ссылкой. Как добавить гиперссылки без добавления разрывов строк? Это мой код:WPF RichTextBox - добавить гиперссылку без разрыва строки?

 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); 
     } 

ответ

2

Разрушения строк точно созданы абзацем. Вы можете просто создать новый Hyperlink, используя некоторые другие Inline элемент не Блок элемент. Код должен быть таким:

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);    
}