TextBlock中的C#超链接:当我点击它时没有任何反应

在我的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); 

链接显示正确。

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

问题:当我点击它时,没有任何反应。

我忘记了什么吗? 我是否需要实现某种方法才能真正打开链接?

您需要处理超链接的RequestNavigate事件。 这是一个快速的方法:

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

你在处理’Hyperlink.RequestNavigate’事件吗? 当用户在WPF窗口中单击超链接时,它不会自动打开具有其NavigateUri属性中指定的URI的浏览器。

在您的代码隐藏中,您可以执行以下操作:

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