使用 XAML 停止事件冒泡

Stop event bubbling up using XAML

我有一个 Grid,里面有一个 Button。该按钮附有 Flyout 菜单。

我实现了一个操作,当按钮为 tapped/clicked 时打开弹出菜单。这是不需要事件写入的默认行为。当网格为tapped/clicked.

时,我还实现了一个动作

问题是我不希望网格在我 tap/click 按钮时做出反应。基于 this fine read,这一切都是有道理的,但就我而言,我没有任何代码来添加 e.Handled = true; 行。

有什么方法可以仅使用 XAML 来阻止事件在树中冒泡吗?谢谢!

我相信您需要编写一些代码,而不是您试图避免的代码。

  1. 创建一个订阅并处理 冒泡事件。
  2. 将行为附加到您想要的元素 事件冒泡停止。

有一篇关于将行为插入 UWP 应用程序的 Microsoft 文章https://blogs.windows.com/buildingapps/2015/11/30/xaml-behaviors-open-source-and-on-uwp/

虽然我讨厌窃取 Gusdor 的积分。有一个内置的枚举 属性 来处理这种称为 ClickMode 的情况,您可以覆盖 ReleaseButton 的默认模式并将其设置为实例ClickMode="Press" 以获得所需的效果并允许它在任何父级之前单独接收 HitTestVisibility。

希望这对您有所帮助,干杯。