2010-03-23 2 views
10

Ich habe folgendes Problem:deaktivieren ereignis sprudelnden C# wpf

Als ich zwei Etiketten ineinander:

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

Und den folgenden Code:

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

Wenn Ich klicke auf "Second", ich möchte nur "Label_MouseUp_1" auslösen. Aber in meiner Konsole erhalte ich:

zeigen
me me zeigen nicht

Gibt es eine Möglichkeit, die sprudelnden Ereignisse auszuschalten?

(auch: „First“ hat anklickbar sein, so dass das Ereignis das Entfernen es löst nicht das Problem)

Thnx

Antwort

25

ich die Dokumentation nicht direkt vor mir haben, aber Ich denke, wenn Sie das MouseButtonEventArgs-Objekt als Handled markieren, stoppt es das Ereignis in der Kette.

sollte so einfach wie

e.Handled = true; 

Bitte jemand mich korrigieren, wenn ich das falsch bin.

+0

Das ist eine schnelle anwser :) Ich werde dies auf einmal versuchen. Vielen Dank – Ruben

+0

Dies funktioniert perfekt. Danke – Ruben

+0

Große Antwort, frohe Weihnachten! –