它不工作的原因是因为您有一个WPF WebBrowser和WinForms WebBrowser的混合,它们不兼容。
你的XAML是创建一个WPF web浏览器,但在导航的情况下,你是铸造IE.Document为的HTMLDocument,这是对的WinForms web浏览器的类型。因此演员阵容将失败。
即使你改变它的工作,有在导航的事件再一次的问题下载已经开始被激发,它已经完成后不(在MSDN如记录)。 WPF WebBrowser没有像WinForms WebBrowser那样的DocumentCompleted事件。
如果您想在WPF应用程序中使用此功能,一种简单的方法是使用WinForms WebBrowser而不是WPF版本。这是通过在WindowsFormsHost主办这次如下图所示进行:
<wfi:WindowsFormsHost Name="host" />
你必须包括对System.Windows.Forms的引用(你可能已经拥有)和WindowsFormsIntegration程序,然后定义命名空间:
xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
而在后台代码:
webBrowser = new System.Windows.Forms.WebBrowser();
host.Child = webBrowser;
然后浏览:
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
webBrowser.Navigate("http://google.com");
然后将背景设置为黑色,你会做这样的身体,就像这样:
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlDocument document = (HtmlDocument)webBrowser.Document;
document.Body.Style = "background-color:black";
}
我测试了这一点,它的工作原理。