отключить пузырьковое отображение событий c # wpf

У меня следующая проблема:

Когда я вставил два ярлыка друг в друга:

<Label x:Name="First" MouseUp="Label_MouseUp">
    <Label x:Name="Second" MouseUp="Label_MouseUp_1">This is a label into another label</Label>
</Label>

И следующий код:

private void Label_MouseUp(object sender, MouseButtonEventArgs e)
{
    Console.WriteLine("Do NOT show me");
}

private void Label_MouseUp_1(object sender, MouseButtonEventArgs e)
{
    Console.WriteLine("Show me");
}

Когда я нажимаю «Второй», я хочу, чтобы он запускал только «Label_MouseUp_1». Но в моей консоли я получаю:

Покажи мне
НЕ показывай мне

Есть ли способ отключить всплывающие события?

(также "Первый" должен быть кликабельным, поэтому удаление события не решает проблему)

спасибо


person Ruben    schedule 23.03.2010    source источник


Ответы (1)


У меня нет документов прямо передо мной, но я думаю, что если вы пометите объект MouseButtonEventArgs как обработанный, это остановит продвижение события вверх по цепочке.

Должно быть так же просто, как

e.Handled = true;

Пожалуйста, кто-нибудь поправьте меня, если я ошибаюсь в этом.

person Navaar    schedule 23.03.2010
comment
Это быстрый ответ :) Я собираюсь попробовать это сразу. Большое спасибо - person Ruben; 23.03.2010
comment
Отличный ответ, с Рождеством! - person Teoman shipahi; 26.12.2014