Wpf PreviewMouseDoubleClic已被忽略

Wpf PreviewMouseDoubleClic已被忽略,wpf,event-handling,double-click,tunneling,Wpf,Event Handling,Double Click,Tunneling,我有一个包含文本框的窗口 在窗口和文本框上,我都添加了PreviewMouseDoubleClicHandler 窗口中的处理程序: private void PreviewMouseDoubleClickHandler(object sender, MouseButtonEventArgs e) { Debug.WriteLine("handler in the window"); e.Handled = true; } 文本框中的处理程序: private void Pre

我有一个包含文本框的窗口

在窗口和文本框上,我都添加了PreviewMouseDoubleClicHandler

窗口中的处理程序:

private void PreviewMouseDoubleClickHandler(object sender, MouseButtonEventArgs e)
{
    Debug.WriteLine("handler in the window");
    e.Handled = true;
}
文本框中的处理程序:

private void PreviewMouseDoubleClickHandler(object sender, MouseButtonEventArgs e)
{
    Debug.WriteLine("handler in the textBox");
    e.Handled = true;
}
现在,当我双击文本框时,我希望首先进入窗口的处理程序,打印调试行,然后处理事件,然后什么都不做。我认为textBox的处理程序不会启动,因为事件已经由窗口处理

但这并不是这样的:我让两个处理程序都被解雇了

奇怪的是:它在PreviewMouseDown事件中运行良好。如果我做了完全相同的事情,但使用PreviewMouseDownEvents,我会得到预期的行为,即:窗口处理mouseDown,而文本框的处理程序不会被触发


那么,为什么双击事件不起作用呢?我做错什么了吗?它应该这样工作吗?双击事件是否以另一种方式进行管理,以防止我使用隧道的优点?

该行为是经过设计的,请参见:

是的,我已经有了mouseButtonDown+clickCount选项作为备份解决方案,但在我的情况下,这真是太过分了,我想知道我是否可以让doubleClickEventHandler工作。真的很奇怪,你们不能用双击来进行隧道挖掘-/根据MSDN,这种行为实际上是设计出来的:写下这个作为回答,我会把你标记为接受。这是我丢失的信息(我真的应该RTFM)