WPF WebBrowser控件点击链接跳转至IE而非默认浏览器的修改方法
修改WPF WebBrowser控件链接打开行为为系统默认浏览器
WPF的WebBrowser控件基于IE内核,默认会用IE打开外部链接,要改成系统默认浏览器,只需要拦截导航事件并手动调用系统浏览器即可:
- 修改XAML,给WebBrowser添加
Navigating事件绑定:
<WebBrowser x:Name="webBrowser" Navigating="WebBrowser_Navigating"> </WebBrowser>
- 在后台代码中实现事件处理逻辑:
private void WebBrowser_Navigating(object sender, NavigatingCancelEventArgs e) { // 过滤内部导航(后退、前进)和本地文件,仅处理外部HTTP/HTTPS链接 if (e.Uri != null && (e.Uri.Scheme == "http" || e.Uri.Scheme == "https") && e.NavigationMode != NavigationMode.Back && e.NavigationMode != NavigationMode.Forward) { // 取消WebBrowser默认导航行为 e.Cancel = true; // 调用系统默认浏览器打开目标链接 System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(e.Uri.AbsoluteUri) { UseShellExecute = true }); } }
原理说明:通过Navigating事件拦截所有导航请求,判断为外部网页链接时,取消WebBrowser自身的导航操作,转而利用Process.Start结合UseShellExecute=true调用系统默认浏览器打开链接。
内容的提问来源于stack exchange,提问作者BennoDual
相关产品推荐
相关产品推荐

