我有一个包含textBox的窗口。
在窗口和textBox上,我添加了一个PreviewMouseDoubleClicHandler。
窗口中的处理程序:
private void PreviewMouseDoubleClickHandler(object sender, MouseButtonEventArgs e)
{
Debug.WriteLine("handler in the window");
e.Handled = true;
}
textBox中的处理程序:
private void PreviewMouseDoubleClickHandler(object sender, MouseButtonEventArgs e)
{
Debug.WriteLine("handler in the textBox");
e.Handled = true;
}
现在,当我双击textBox时,我希望首先进入窗口的Handler,打印调试行,然后处理事件,然后再没有了。我认为textBox的处理程序不会触发,因为窗口已经处理了事件。
虽然这不起作用:我让两个处理程序都被解雇了。
奇怪的是:它适用于PreviewMouseDown事件。如果我使用PreviewMouseDownEvents执行完全相同的操作,我会得到我期望的行为,即:窗口处理mouseDown并且不会触发textBox的处理程序。
那为什么这不适用于doubleClick事件?难道我做错了什么?它应该像这样工作吗?是以不同的方式管理的doubleClick事件阻止我使用隧道的优势吗?
答案 0 :(得分:1)