private void OnLoaded(object sender, RoutedEventArgs e)
 {
     Loaded -= OnLoaded;
     if (_containerWindowMoveListener == null)
     {
         _containerWindowMoveListener = new ContainerWindowMoveListener(_browserWindowHandle, () => _browser.GetHost().NotifyMoveOrResizeStarted());
     }
 }
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            if (_browser != null && disposing)
            {
                ParagonRuntime.RemoveBrowser(this);
                if (_widgetWindowZOrderHandler != null)
                {
                    _widgetWindowZOrderHandler.Dispose();
                    _widgetWindowZOrderHandler = null;
                }
                if (_containerWindowMoveListener != null)
                {
                    _containerWindowMoveListener.Dispose();
                    _containerWindowMoveListener = null;
                }
                if (_client != null)
                {
                    _client.Dispose();
                    _client = null;
                }
                if (_router != null)
                {
                    // Router should not be disposed here since it is shared by all cefwebbrowsers
                    //_router.Dispose();
                    _router = null;
                }
                if (_browser != null)
                {
                    _browser.Dispose();
                    _browser = null;
                }
                _browserWindowHandle = IntPtr.Zero;
            }
        }