从WebBrowser访问DOM

我正在尝试实现类似浏览器的小应用程序,这将允许我修改查看的网站外观(例如,使链接的字体更大)。 它专为Microsoft Surface设计,可用于巨大的触摸屏。 它使用WPF作为UI。

我打算使用WebBrowser控件来完成此任务。 但是,文档中有两个名为WebBrowser的类。 其中一个在System.Windows.Forms ,另一个在System.Windows.Controls 。 第一个提供对DOM模型的访问,但是用于Forms应用程序(如果我理解正确,那绝对不是我拥有的)。 如果在xaml中添加控制器,则默认添加第二个,但它不提供对DOM的访问。

那么,如何从WebBrowser for Surface访问DOM模型? 我对c#和Microsoft技术都很陌生,所以如果我的问题不清楚或明显,我会道歉。

对于System.Windows.Controls.WebBrowser类,您可以使用Document属性。 通过右键单击项目并选择Add Reference,添加应该可用的项目的mshtml引用,然后您应该能够将其强制转换为mshtml.IHTMLDocument2

 mshtml.IHTMLDocument2 htmlDoc = webBrowser.Document as mshtml.IHTMLDocument2; // do something like find button and click htmlDoc.all.item("testBtn").click();