美文网首页
WPF ListView在ListViewItem的MouseD

WPF ListView在ListViewItem的MouseD

作者: 达哥傻乐 | 来源:发表于2020-05-25 10:01 被阅读0次

    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的MouseD

          本文链接:https://www.haomeiwen.com/subject/jgveahtx.html