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