它不工作的原因是因爲您有一個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";
}
我測試了這一點,它的工作原理。