首页 > 其他分享 >WPF 已知问题 Popup 失焦后导致 ListBox 无法用 MouseWheel 滚动问题和解决方法

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

时间:2022-09-29 08:23:10浏览次数:47  
标签:Popup 窗口 失焦 PreviewMouseDown 激活 MouseWheel

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

原因:

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

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

        popup.PreviewMouseDown += DialogPopup_PreviewMouseDown;

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

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

            this.Focus();
        }

标签:Popup,窗口,失焦,PreviewMouseDown,激活,MouseWheel
From: https://www.cnblogs.com/lindexi/p/16733247.html

相关文章

  • [Jetpack Compose] popUpTo 的一些理解
    开发应用时遇到一个需求:无论处于哪个页面,按返回键时都弹出退出应用的提示。我用了BackHandler处理返回事件,发现只有处于主页时才可触发回调,于是思考应该是导航相关的问......
  • DataGrid中使用PopupBox
    1.效果图2.实现TestView.xaml<DataGridItemsSource="{BindingItemsSource}"CanUserAddRows="False"AutoGenerateColumns="False">......
  • delphi 做一个动态PopupMenu菜单
    效果要求:点击树形结构不同的行,弹出不一样的下拉菜单窗体设计:  数据库设计: 实际效果: 核心代码:procedureTForm1.PopupMenu1Popup(Sender:TObject);......
  • WDA学习(21):WDA Popup,Message,Focus
    1.14WDAPopup,Message,FocusWDA测试Popup,Message,光标Focus功能。1.创建Component;COMPONENTCONTROLLER页签Context页签:创建ContextNode:MESSAGE;创建Attribute:MSG......