C#中的超链接的TextBlock:没有任何反应,当我点击它(C# Hyperlink in Tex

2019-09-23 13:50发布

在我的C#独立的应用程序,我想让用户点击,将推出自己喜欢的浏览器中的链接。

System.Windows.Controls.TextBlock text = new TextBlock();
Run run = new Run("Link Text");

Hyperlink link = new Hyperlink(run);
link.NavigateUri = new Uri("http://w3.org");
text.Inlines.Add(link);

链接正确显示。

当我将鼠标移到它,链接变为红色。

问题:当我点击它,什么都不会发生。

我是不是忘了什么东西? 我是否需要实施某种方法来真正让链接被打开?

Answer 1:

你需要处理的超级链接的RequestNavigate事件。 下面是做这件事的快捷方式:

link.RequestNavigate += (sender, e) =>
{
    System.Diagnostics.Process.Start(e.Uri.ToString());
};


Answer 2:

你在处理“Hyperlink.RequestNavigate”事件? 当用户在一个WPF窗口单击超链接不会自动打开,在其NavigateUri属性指定的URI的浏览器。

在您的代码隐藏,你可以这样做:

link.RequestNavigate += LinkOnRequestNavigate;

private void LinkOnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
    System.Diagnostics.Process.Start(e.Uri.ToString());
}


文章来源: C# Hyperlink in TextBlock: nothing happens when I click on it