private static void OnSuppressEraseBackgroundChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (d is WebBrowser) { WebBrowser webBrowser = (WebBrowser)d; bool newValue = (bool)e.NewValue; if (newValue) { if (!TryHookWebBrowser(webBrowser)) { // The IE window has not been created yet, so we'll // look for it once a web page has been loaded. webBrowser.LoadCompleted += new LoadCompletedEventHandler(WebBrowserLoadCompleted); } } else { // When no longer suppressing the WM_ERASEBKGND message, // dispose our window hook. IEWindowHook hook = (IEWindowHook)webBrowser.GetValue(SuppressEraseBackgroundWindowHookProperty); if (hook != null) { hook.Dispose(); } webBrowser.ClearValue(SuppressEraseBackgroundWindowHookProperty); } } }