WPF ListView在ListViewItem的MouseDoubleClick弹出窗口的问题

原文:WPF ListView在ListViewItem的MouseDoubleClick弹出窗口的问题

WPF中在A窗口中的ListView在ListViewItem的MouseDoubleClick弹出新窗口B的时候,会出现弹出的窗口B并不在窗口A的上面,而是在B窗口显示出来后,A窗口会再次获得焦点并显示在B窗口的前面。
比如下面的在A窗口中定义的鼠标双击事件代码:

private void ListViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    var winB = new WindowMaster();
    winB.Show();
}

在双击A窗口中的ListViewItem后,显示出来的winB一完成显示,立刻就会被窗口A挡住。
经过分析认为可能是在鼠标双击事件发生后,在窗口A中鼠标双击发生后,更多的鼠标点击事件被继续执行,导致窗口A被激活到前台。
经过验证,加入一行代码使鼠标点击不被后续处理后,问题解决,解决了问题的完整代码如下:

private void ListViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    var winB = new WindowMaster();
    winB.Show();
    e.Handled = true;
}

代码e.Handled=true;阻止了鼠标点击事件后续相关事件的触发和处理。

达叔傻乐(darwin.zuo@163.com)

WPF ListView在ListViewItem的MouseDoubleClick弹出窗口的问题

上一篇:让你从此不拍出模糊相片的摄影技巧图文详解


下一篇:WPF XAML日期时间字符串的格式化