前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WPF 已知问题 Popup 失焦后导致 ListBox 无法用 MouseWheel 滚动问题和解决方法

WPF 已知问题 Popup 失焦后导致 ListBox 无法用 MouseWheel 滚动问题和解决方法

作者头像
林德熙
发布2022-03-28 13:53:01
4590
发布2022-03-28 13:53:01
举报
文章被收录于专栏:林德熙的博客林德熙的博客

本文记录在 Popup 失焦后导致 ListBox 无法用 MouseWheel 滚动问题

原因:

Popup虽然是个完整独立的窗体,但它的激活要靠它的“父窗口”间接来激活,这里之所以说是“父窗口”,是因为它本身并没有真正的“父窗口”,它只是从“父窗口”里产生的一个游离的“子窗口”,也就是说它没记住它的“父亲”,但是它的“父亲”倒是记住它了,在“父亲”被激活的时候,“父亲”会去主动激活它这个不肖的“儿子”。

所以问题解决就从激活“父窗口”开始,在Popup窗体的PreviewMouseDown事件处理函数中,直接激活“父窗口”就可以了。写成伪代码如下:

代码语言:javascript
复制
        popup.PreviewMouseDown += DialogPopup_PreviewMouseDown;

        private void DialogPopup_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {

            this.Activate();//this为其理论上的父窗口,还请替换为你的实际代码。另外,根据代码规范,不要写 this. 哦

            this.Focus();
        }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档