在我的主应用程序窗口中,有一些控件,每个控件都会打开一个弹出窗口,向用户显示更多控件。
主应用程序窗口中的其他控件具有moused双击事件处理程序。我的问题是,当用户双击弹出窗口时,弹出窗口后面的控件正在接收moused双击事件。
我已经尝试将moused双击事件处理程序添加到弹出窗口的父级,并处理该事件,但它仍然会进入主应用程序窗口。
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();
}
当弹出窗口打开时,还有其他方法可以防止在主应用程序窗口中触发鼠标事件吗?
答案 0 :(得分:-2)
轻松!而不是使用控件的 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事件。