处理的PreviewMouseDoubleClic被忽略了

时间:2011-02-16 10:20:39

标签: wpf event-handling double-click tunneling

我有一个包含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事件阻止我使用隧道的优势吗?

1 个答案:

答案 0 :(得分:1)