如何在WPF的WebBrowser类中公开LoadCompleted方法?

完全的

成员
已加入
2012年10月24日
留言内容
14
编程经验
3-5
如何在WPF C#的WebBrowser类中公开LoadCompleted方法?

我正在尝试用wpf编写一个C#程序来检索网页的内容。

我尝试的第一件事是尝试使用WebRequest和WebResponse类。这没有提供实际显示的内容。 WebResponse重新发布发送到浏览器的HTML代码。但是我发现,在浏览器加载页面时,javascript可以更改最终在浏览器中显示的内容。

因此,我决定使用WebBrowser类。

立即我发现有两个WebBrowser类。 Thee是为WinForms记录的文档,另外一个是为WPF记录的文档。我需要了解有关WPF的文档。我想知道该怎么做的是在"LoadCompleted"方法引起的。但是我不知道如何做到这一点,也找不到任何示例来说明如何做到这一点。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,524
地点
悉尼,澳大利亚
编程经验
10+
这实际上与LoadCompleted事件没有任何关系。页面加载完成时,该事件会通知您。就这样。无论文档刚刚完成加载还是10分钟前加载,在WPF WebBrowser中访问文档的代码都是完全相同的。这是尝试解决错误问题并因此无法找到解决问题的经典案例。

首先我要说的是,我几乎从未在WinForms中使用过WebBrowser控件,而在WPF中也从未使用过。在阅读您的文章后,我通过研究学习了有关WPF WeBrowser控件的所有知识。在您提出最后一个问题后,花了整整30秒的时间找到了LoadCompleted事件,并且花了我很长的时间来解决这个问题。

从过去的研究中,我知道WinForms WebBrowser具有Document属性,因此我认为WPF版本也可以。整理文档可以证明这一点,但这并不完全相同。它声明为Object类型,而WinForms版本声明为HtmlDocument类型。再次通过研究,我知道HtmlDocument具有一个类型为Object的DomDocument属性,因此有些直觉告诉我这两个Object属性可能直接或相当接近地等效。

如果是我,我会找到使用WinForms WebBrowser的Document.DomDocument属性的示例,并查看相同的代码是否可以用于WPF WebBrowser的Document属性。如果没有,我还使用这个显而易见的网络搜索找到了两个看似相关的链接:

WPF Web浏览器文档-Bing

值得注意的是,我花了更多的时间来键入这篇文章,而不是查找它传递的信息。
 
最佳 底部