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