WPF:Webbrowser 捕获关闭事件

本文详细介绍了如何在Visual Studio中使用自定义窗口消息钩子(HwndSourceHook)解决XAML事件响应错误的问题,特别是针对在窗体中嵌套Webbrowser组件时网页请求关闭导致的事件处理失败。通过实现一个事件处理器函数,并将其绑定到Webbrowser的特定消息事件(msg=130),实现了对网页关闭请求的正确响应。文章提供了示例代码和步骤指导,帮助开发者避免在复杂UI布局中遇到类似问题。

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

响应MessageHook事件:

this.webBrowser.MessageHook += webBrowser_MessageHook;
IntPtr webBrowser_MessageHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            if(msg == 130)
            {
                //do something
            }
            return hwnd;
        }

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

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

 

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

转载于:https://www.cnblogs.com/DoNetCoder/p/4170074.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值