public Browser()
        {
            if (IsDesignMode)
            {
                return;
            }

            WebView                = mbWebView.Create();
            TitleChanged           = new EventAdapter <TitleChangeEventArgs, mbTitleChangedCallback>(this, NativeMethods.mbOnTitleChanged);
            UrlChanged             = new EventAdapter <UrlChangeEventArgs, mbURLChangedCallback>(this, NativeMethods.mbOnURLChanged);
            NewWindow              = new EventAdapter <NewWindowEventArgs, mbCreateViewCallback>(this, NativeMethods.mbOnCreateView);
            LoadUrlBegin           = new EventAdapter <LoadUrlBeginEventArgs, mbLoadUrlBeginCallback>(this, NativeMethods.mbOnLoadUrlBegin);
            WebSocketOnWillConnect = new EventAdapter <WebSocketWillConnectEventArgs, onWillConnect>(this, RegSocketOnWillConnect);
            WebSocketOnConnect     = new EventAdapter <WebSocketConnectedEventArgs, onConnected>(this, RegSocketOnConnected);
            WebSocketOnReceive     = new EventAdapter <WebSocketDataEventArgs, onReceive>(this, RegSocketOnReceive);
            WebSocketOnSend        = new EventAdapter <WebSocketDataEventArgs, onSend>(this, RegSocketOnSend);
            WebSocketOnError       = new EventAdapter <WebSocketErrorEventArgs, onError>(this, RegSocketOnError);
            LoadUrlEnd             = new EventAdapter <LoadUrlEndEventArgs, mbLoadUrlEndCallback>(this, NativeMethods.mbOnLoadUrlEnd);
            DocumentReady          = new EventAdapter <DocumentReadyEventArgs, mbDocumentReadyCallback>(this, NativeMethods.mbOnDocumentReady);

            mbPaintBitUpdatedCallback = new mbPaintBitUpdatedCallback(mbPaintBitUpdated);
            NativeMethods.mbOnPaintBitUpdated(WebView, mbPaintBitUpdatedCallback, IntPtr.Zero);
            ClipToBounds = true;
            Focusable    = true;
            IsEnabled    = true;
            InputMethod.SetIsInputMethodEnabled(this, true);
            InputMethod.SetIsInputMethodSuspended(this, false);
            InputMethod.Current.ImeState = InputMethodState.Off;
        }
Beispiel #2
0
        public Browser()
        {
            InitializeComponent();
            if (IsDesignMode)
            {
                return;
            }
            WebView = mbWebView.Create();

            TitleChanged           = new EventAdapter <TitleChangeEventArgs, mbTitleChangedCallback>(this, NativeMethods.mbOnTitleChanged);
            UrlChanged             = new EventAdapter <UrlChangeEventArgs, mbURLChangedCallback>(this, NativeMethods.mbOnURLChanged);
            NewWindow              = new EventAdapter <NewWindowEventArgs, mbCreateViewCallback>(this, NativeMethods.mbOnCreateView);
            LoadUrlBegin           = new EventAdapter <LoadUrlBeginEventArgs, mbLoadUrlBeginCallback>(this, NativeMethods.mbOnLoadUrlBegin);
            WebSocketOnWillConnect = new EventAdapter <WebSocketWillConnectEventArgs, onWillConnect>(this, RegSocketOnWillConnect);
            WebSocketOnConnect     = new EventAdapter <WebSocketConnectedEventArgs, onConnected>(this, RegSocketOnConnected);
            WebSocketOnReceive     = new EventAdapter <WebSocketDataEventArgs, onReceive>(this, RegSocketOnReceive);
            WebSocketOnSend        = new EventAdapter <WebSocketDataEventArgs, onSend>(this, RegSocketOnSend);
            WebSocketOnError       = new EventAdapter <WebSocketErrorEventArgs, onError>(this, RegSocketOnError);
            LoadUrlEnd             = new EventAdapter <LoadUrlEndEventArgs, mbLoadUrlEndCallback>(this, NativeMethods.mbOnLoadUrlEnd);
            DocumentReady          = new EventAdapter <DocumentReadyEventArgs, mbDocumentReadyCallback>(this, NativeMethods.mbOnDocumentReady);
            JsQuery  = new EventAdapter <OnJsQueryEventArgs, mbJsQueryCallback>(this, NativeMethods.mbOnJsQuery);
            DownLoad = new EventAdapter <DownloadEventArgs, mbDownloadCallback>(this, NativeMethods.mbOnDownload);
            DownLoadInBlinkThread      = new EventAdapter <DownloadDownloadInBlinkThreadEventArg, mbDownloadInBlinkThreadCallback>(this, NativeMethods.mbOnDownloadInBlinkThread);
            _mbPaintUpdatedCallback    = new mbPaintUpdatedCallback(OnPaintUpdate);
            _mbPaintBitUpdatedCallback = new mbPaintBitUpdatedCallback(mbPaintBitUpdated);

            NativeMethods.mbSetAutoDrawToHwnd(WebView, true);
            NativeMethods.mbOnPaintUpdated(WebView, _mbPaintUpdatedCallback, IntPtr.Zero);
            //NativeMethods.mbOnPaintBitUpdated(WebView, _mbPaintBitUpdatedCallback, IntPtr.Zero);
            if (!IsHandleCreated)
            {
                CreateHandle();
            }
            WebView.SetHandle(Handle);
            ImeContext.SetImeStatus(ImeMode.NoControl, Handle);
            ImeMode        = ImeMode.Off;
            Disposed      += Browser_Disposed;
            DoubleBuffered = true;
        }