2010-03-23 4 views
10

У меня следующая проблема:отключить событийно-барботажных C# МОФ

Когда я получил две метки друг в друга:

<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"); 
} 

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

Покажите мне
Не показывать мне

Есть ли способ отключить пузырящееся событие?

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

Thnx

ответ

25

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

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

e.Handled = true; 

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

+0

Это быстрый anwser :) Я собираюсь попробовать это сразу. Большое спасибо – Ruben

+0

Это работает отлично. Спасибо – Ruben

+0

Отличный ответ, веселого Рождества! –

 Смежные вопросы

  • Нет связанных вопросов^_^