WPF WebBrowser控件。需要防止它在应用程序内关闭

时间:2011-11-17 17:29:05

标签: c# wpf browser

我有一个WPF,我正在实现一个WebBrowser控件,我有一个对象列表,当我选择它们时,它会更改webBrowser控件的url绑定,一切都很好。

但是,如果我所在的网页试图关闭网页,会弹出一个对话框,您可以按“是”或“否”关闭“窗口”(WebBrowser控件)

如果用户点击“是”,则当您尝试在列表中选择其他内容时,Web浏览器控件将关闭并引发异常,因为该窗口不再存在。

webbrowser控件没有关闭暴露的方法我可以到达它并且我能够覆盖“Window.Close()”方法,但这也阻止我关闭主应用程序窗口。

我尝试从WebBrowser类继承,但它是密封的,所以我不能继承添加事件处理程序或覆盖方法,如“Close()”或事件,如“OnClosing()”

我无法控制网站,因为它是第三方产品。

此外,WebBrowser控件在退出时不会取消导航。

所以我的问题是

一个。是否可以拦截对话框并始终回答“否”?

B中。有没有其他方法可以防止WebBrowser控件关闭,即使该人对对话框说“是”?

2 个答案:

答案 0 :(得分:1)

所以,我最终把控件放在它的单独视图中,然后构建和销毁视图作为对话

答案 1 :(得分:0)

一旦我不得不解决类似的情况。它是一个Delphi应用程序,带有嵌入式TWebBrowser组件,它与.NET的WebBrowser基本相同。该软件自动点击了网页的元素,并且在点击后弹出确认对话框时出现这种情况。自动按下OK按钮的最简单方法是使用确认对话框的参数调用FindWindow,然后使用窗口句柄通过调用SendInput向其发送Enter键。我认为在您的情况下需要按Escape键。