【问题标题】:disable event-bubbling c# wpf禁用事件冒泡 c# wpf
【发布时间】:2026-02-18 03:15:01
【问题描述】:

我遇到以下问题:

当我得到两个标签时:

<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”。但在我的控制台中,我得到:

给我看
不要给我看

有没有办法关闭冒泡事件?

(另外,“First”必须是可点击的,因此删除那里的事件并不能解决问题)

谢谢

【问题讨论】:

    标签: c# wpf event-bubbling


    【解决方案1】:

    我面前没有文档,但我认为如果您将 MouseButtonEventArgs 对象标记为 Handled,它会阻止事件沿链上升。

    应该像

    一样简单
    e.Handled = true;
    

    如果我对此有误,请有人纠正我。

    【讨论】:

    • 这是一个快速的答案 :) 我将立即尝试这个。非常感谢
    • 很好的答案,圣诞快乐!