2016-03-29 1 views
0

Как добавить кнопку гиперссылки внутри текстового блока через c# в конце текста. В XAML части у меня есть текстовый блокДобавление кнопки гиперссылки в текстовом блоке программно

<TextBlock Name="PresenterDescription" TextWrapping="Wrap" Foreground="White" MinHeight="200" FontSize="16"/> 

в .cs файл я делаю это ..

Run run1 = new Run(); 
run1.Text = "some text"; 
HyperlinkButton hyperlinkButton = new HyperlinkButton() 
{ 
    Content = " read more..", 
    HorizontalAlignment = HorizontalAlignment.Left, 
    NavigateUri = new Uri("http://somelink.com", UriKind.Absolute) 
}; 
PresenterDescription.Inlines.Add(run1); 

Но как я могу добавить кнопку с гиперссылкой на этот текстовый блок?, Как я могу не добавлять его в качестве встраиваемого ..

ответ

0

В XAML части я сделал следующий

<RichTextBox Name="PresenterDescription" VerticalAlignment="Top" FontSize="16"> 
      <Paragraph > 
         <Hyperlink Click="readMoreclick"> 
          <Underline Foreground="White">read more..</Underline> 
         </Hyperlink> 
      </Paragraph> 
</RichTextBox> 

И в c# частях текста, который будет отображаться перед ссылкой как ..

PresenterDescription.Selection.Text = "Text to be displayed"; 

И, наконец, обработчик события для связи мыши. .

private void readMoreclick(object sender, RoutedEventArgs e) 
     { 
      WebBrowserTask webBrowserTask = new WebBrowserTask(); 
      webBrowserTask.Uri = new Uri("www.example.com", UriKind.Absolute); 
      webBrowserTask.Show(); 
     } 
1

это не возможно добавить HyperlinkButton вместо этого вы можете добавить гиперссылкой к TextBlock, или вы можете использовать RichTextBlock как это

 <RichTextBlock x:Name="textblock"/> 

Run run1 = new Run(); 
run1.Text = "some text"; 
HyperlinkButton hyperlinkButton = new HyperlinkButton() 
{ 
    Content = " read more..", 
    HorizontalAlignment = HorizontalAlignment.Left, 
    NavigateUri = new Uri("http://somelink.com", UriKind.Absolute) 
}; 
Paragraph para = new Paragraph(); 
InlineUIContainer inline = new InlineUIContainer(); 
inline.Child = hyperlinkButton; 
para.Inlines.Add(run1); 
para.Inlines.Add(inline); 
textblock.Blocks.Add(para);