禁用C# WPF中的事件冒泡

12

我遇到了以下问题:

当我将两个标签嵌套在一起时:

<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”。但是在我的控制台中会输出:

显示我
不要显示我

有没有一种方法可以关闭冒泡事件?

(同时,“First”必须可点击,因此在那里删除事件无法解决问题)

谢谢

1个回答

27

我手头没有文档,但我认为如果将MouseButtonEventArgs对象标记为Handled,则可以阻止事件向上传递。

应该很简单。

e.Handled = true;

如果我理解错了,请有经验的人纠正我。


那是一个快速的答案 :) 我会立刻尝试这个。 非常感谢。 - Ruben
很棒的答案,圣诞快乐! - Teoman shipahi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接