【问题标题】:Stop event bubbling up using XAML使用 XAML 停止事件冒泡
【发布时间】:2017-01-17 12:10:51
【问题描述】:

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

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

问题是我不希望网格在我点击/单击按钮时做出反应。基于this fine read,这一切都说得通,但就我而言,我没有任何代码可以添加e.Handled = true; 行。

有什么方法可以阻止事件在树上冒泡只使用XAML?谢谢!

【问题讨论】:

  • ClickMode="Press" 放在Button 上,因为它的默认设置是“发布”,所以网格也不会收到事件,我认为这里不需要任何附加行为等。 ;)
  • 这是一个比下面 Gusdor 建议的更好的解决方案。 @ChrisW。请复制您的评论作为答案,以便我接受。谢谢。
  • 公平,一秒。

标签: wpf xaml uwp windows-10-universal uwp-xaml


【解决方案1】:

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

希望这会有所帮助,干杯。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 2012-03-14
      • 2013-09-29
      相关资源
      最近更新 更多