PreviewMouseDoubleClic обрабатывается игнорируется - PullRequest
0 голосов
/ 16 февраля 2011

У меня есть окно с текстовым полем.

В окне и текстовом поле я добавляю 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 управляется по-другому, что мешает мне использовать преимущества туннелирования?

1 Ответ

1 голос
/ 16 февраля 2011

Поведение в соответствии с дизайном, пожалуйста, смотрите: http://msdn.microsoft.com/en-us/library/system.windows.controls.control.previewmousedoubleclick.aspx

...