2010-04-15 85 views
2

如何在c#编码中的超链接中插入TextBlock控件。类似于C#中的 ​​。我无法在超链接中查找内容属性。提前致谢。在wpf中构建超链接C#

回答

6

尝试使用Inlines超链接添加到TextBlock的,如果你想使用一个TextBlock文本添加超链接

TextBlock textBlock = new TextBlock(); 
Hyperlink link = new Hyperlink(); 
link.Inlines.Add("Click me"); 
textBlock.Inlines.Add(link); 
+0

感谢Hun1Ahpu。有用。 – fad 2010-04-15 10:49:18

+0

感谢它的工作好! – 2013-03-06 12:05:10

0

使用一个HyperlinkBut​​ton,而不是超链接(这是指在一个给的FlowDocument被使用,与内联内部)

HyperlinkBut​​ton具有内容属性作为内容属性。

所以:

TextBlock tb = new TextBlock(); 
// set tb's properties 

HyperlinkButton hlb = new HyperlinkButton(); 
// set hlb's properties 
hlp.Content = tb; 
+0

喜Timores,无法找到HyperlinkBut​​ton在系统.Windows.Controls – fad 2010-04-15 10:36:14

+0

它在System.Windows程序集中。请参阅http://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton(VS.95).aspx – Timores 2010-04-15 12:13:57

+0

HyperlinkBut​​ton只是一个Silverlight控件。不在WPF – 2010-08-31 02:59:36

0

。我用我碰到的东西,对我很好。

XAML:

<TextBlock> 
    < Hyperlink NavigateUri="http://yoursite.com" RequestNavigate="Hyperlink_RequestNavigate" > 
     Click Me 
    </Hyperlink> 
</TextBlock> 

代码背后:

private void Hyperlink_RequestNavigate(object sender, 
    System.Windows.Navigation.RequestNavigateEventArgs e) { 
    System.Diagnostics.Process.Start(
     new System.Diagnostics.ProcessStartInfo(e.Uri.AbsoluteUri) 
    ); 
    e.Handled = true; 
} 

=========================== ====

我已经看到这很多解决方案,但在Process.Start出现错误。做了更多的阅读并发现这对于Web Apps来说是最好的。无论是否是上述解决方案解决了我的超链接问题。

protected void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) { 
    Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri)); 
    e.Handled = true; 
} 

===============================