У меня есть окно, содержащее textBox.
И в окне, и в текстовом поле я добавляю 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, а обработчик textBox не срабатывает.
Итак, почему это не работает с событием doubleClick? Я делаю что-то неправильно? Это должно так работать? управляется ли событие doubleClick по-другому, что мешает мне использовать преимущества туннелирования?