gpt4 book ai didi

c# - WPF弹出窗口捕获鼠标双击事件

转载 作者:行者123 更新时间:2023-11-30 13:06:56 26 4
gpt4 key购买 nike

在我的主应用程序窗口中,有一些控件,每个控件都会打开一个弹出窗口,向用户显示更多控件。

主应用程序窗口中的其他控件具有 mousedoubleclick 事件处理程序。我的问题是,当用户在弹出窗口中双击时,弹出窗口后面的控件正在接收 mousedoubleclick 事件。

我已经尝试向弹出窗口的父级添加一个 mousedoubleclick 事件处理程序,并处理该事件,但它仍然可以到达主应用程序窗口。

    private void ParentControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
}

我还尝试在弹出窗口的 MouseEnter 事件处理程序中调用 Popup.CaptureMouse(),但该方法总是失败(返回 false)。

    void popup_MouseEnter(object sender, MouseEventArgs e)
{
e.Handled = true;
Popup popup = sender as Popup;
bool success = popup.CaptureMouse();
}

是否有任何其他方法可以防止在弹出窗口打开时在主应用程序窗口中触发鼠标事件?

最佳答案

简单!而不是使用控件的 MouseDoubleClick 事件

private void myControl_MouseDoubleClick(System.Object sender, System.Windows.Input.MouseButtonEventArgs e)
{
MessageBox.Show("MouseDoubleClick on control");

}

使用 PreviewMouseDoubleClick 事件。

private void myControl_PreviewMouseDoubleClick(System.Object sender, System.Windows.Input.MouseButtonEventArgs e)
{
MessageBox.Show("PreviewMouseDoubleClick on control");

}

现在双击您的控件不会同时调用父控件的 DoubleClick 事件。

关于c# - WPF弹出窗口捕获鼠标双击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1647107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com