WebBrowser在IE中打开链接而不是默认浏览器?

时间:2012-08-15 08:03:20

标签: c# wpf .net-4.0 browser

所以我有一个打开一个新窗口的WPF应用程序。然后在该新窗口上,它创建一个webBrowser对象:

WebBrowser browser = new WebBrowser();
browser.Source = new System.Uri(chatUrl);
browser.Navigating += new NavigatingCancelEventHandler(browser_Navigating);
this.browserControl.Child = browser;

如您所见,我为NavigatingCancelEventHandler创建了一个钩子。基于我所看到的,这个处理程序应该拦截在webbrowser中点击的链接。

private void browser_Navigating(object sender, NavigatingCancelEventArgs e)
{
    e.Cancel = true;
    System.Diagnostics.Process.Start(e.Uri.ToString());
}

所以我进行导航,取消它并使用Process.Start函数在我的默认浏览器中打开它。问题是,它没有这样做。它仍然在IE9中打开。我在StackOverflow上看过其他线程,他们都说要做我正在做的事情。但我正在做的事情不起作用。请帮忙。

1 个答案:

答案 0 :(得分:0)

您正在为事件处理程序使用不正确的委托类型,您指定的是NavigatingCancelEventArgs但它应该是WebBrowserNavigatingEventHandler。

获得正确方法的最简单方法是输入

browser.Navigating +=  

按两次TAB键,它会为你生成正确的处理程序。

编辑:嗯,我正在看S.W.F版本,但我会在WPF的任何一种情况下尝试上述内容。