WPF WebBrowser 控件 - "Navigating" 事件未触发

WPF WebBrowser control - "Navigating" event not firing

我有一个使用 WPF 网络浏览器的简单应用程序:

<WebBrowser x:Name="browserMovieLinks" Navigating="browserMovieLinks_Navigating"/>

和代码隐藏中的事件处理程序:

private void browserMovieLinks_Navigating(object sender, NavigatingCancelEventArgs e)
        {
    //do whatever
}

在过去的几年里,这一直完美无缺:当用户在 WebBrowser 控件显示的页面中单击 link 时,导航事件总是被触发。

但是,我注意到最近(不幸的是不知道什么时候或为什么)它已停止工作。不知道是因为我在不同的机器上,还是 .NET 库或 WebBrowser 控件下的 IE 实现发生了某些变化,但现在事件不再触发。

有什么线索吗?

注意:在您指出之前,我知道在 SO 上还有其他类似的问题(例如:Webbrowser not firing events when you click links after navigating to a page),但其中 NONE 给出了正确的解决方案。他们都建议使用不同的第 3 方组件,或者没有任何令人满意的答案,所以我打开这个,希望能得到这个问题的正确答案。

(请注意,我在 WinForms 中的 WebBrowser 控件中遇到过这个问题,因此它可能与 WPF 中的不完全相同。)

你的 link 长什么样?我有一个类似的问题,这是由锚 link 中的目标参数设置为 _blank.

引起的

所以:

<a href="https://example.com" target="_blank">

会在另一个 window 中正确打开 link,但不会触发任何导航事件,因为浏览器本身没有导航到任何地方。我的解决方案是删除目标参数:

<a href="https://example.com">

然后导致浏览器发生导航事件。

只是为了结束这个问题:在我的情况下,这是系统级别的某种问题,IE 在其他情况下也表现得很奇怪。在新的 Windows 安装中它又开始工作了。