WPF:Webbrowser 捕获关闭事件

有点难描述说的是什么。大概就是下面这个图:窗体中嵌套一个Webbrowser,现在网页请求关闭

WPF:Webbrowser 捕获关闭事件_嵌套

响应MessageHook事件:

this.webBrowser.MessageHook += webBrowser_MessageHook;
WPF:Webbrowser 捕获关闭事件_WPF-WebBrowser_02
IntPtr webBrowser_MessageHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            if(msg == 130)
            {
                //do something
            }
            return hwnd;
        }
WPF:Webbrowser 捕获关闭事件_WPF-WebBrowser_02

这个事件不是EventHander的委托,而是HwndSourceHook的委托。

伟大的VS并没有对其做优化处理,所以在Xaml中响应事件会出错。只能在后台自己写了。

其中msg=130代表请求关闭“网页标签”。

 

有点难描述说的是什么。大概就是下面这个图:窗体中嵌套一个Webbrowser,现在网页请求关闭

WPF:Webbrowser 捕获关闭事件_嵌套

响应MessageHook事件:

this.webBrowser.MessageHook += webBrowser_MessageHook;
WPF:Webbrowser 捕获关闭事件_WPF-WebBrowser_02
IntPtr webBrowser_MessageHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            if(msg == 130)
            {
                //do something
            }
            return hwnd;
        }
WPF:Webbrowser 捕获关闭事件_WPF-WebBrowser_02

这个事件不是EventHander的委托,而是HwndSourceHook的委托。

伟大的VS并没有对其做优化处理,所以在Xaml中响应事件会出错。只能在后台自己写了。

其中msg=130代表请求关闭“网页标签”。