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);
                }
            }
        }