使用 XAML 停止事件冒泡
Stop event bubbling up using XAML
我有一个 Grid
,里面有一个 Button
。该按钮附有 Flyout
菜单。
我实现了一个操作,当按钮为 tapped/clicked 时打开弹出菜单。这是不需要事件写入的默认行为。当网格为tapped/clicked.
时,我还实现了一个动作
问题是我不希望网格在我 tap/click 按钮时做出反应。基于 this fine read,这一切都是有道理的,但就我而言,我没有任何代码来添加 e.Handled = true;
行。
有什么方法可以仅使用 XAML
来阻止事件在树中冒泡吗?谢谢!
我相信您需要编写一些代码,而不是您试图避免的代码。
- 创建一个订阅并处理
冒泡事件。
- 将行为附加到您想要的元素
事件冒泡停止。
有一篇关于将行为插入 UWP 应用程序的 Microsoft 文章https://blogs.windows.com/buildingapps/2015/11/30/xaml-behaviors-open-source-and-on-uwp/
虽然我讨厌窃取 Gusdor 的积分。有一个内置的枚举 属性 来处理这种称为 ClickMode 的情况,您可以覆盖 Release
的 Button
的默认模式并将其设置为实例ClickMode="Press"
以获得所需的效果并允许它在任何父级之前单独接收 HitTestVisibility。
希望这对您有所帮助,干杯。
我有一个 Grid
,里面有一个 Button
。该按钮附有 Flyout
菜单。
我实现了一个操作,当按钮为 tapped/clicked 时打开弹出菜单。这是不需要事件写入的默认行为。当网格为tapped/clicked.
时,我还实现了一个动作问题是我不希望网格在我 tap/click 按钮时做出反应。基于 this fine read,这一切都是有道理的,但就我而言,我没有任何代码来添加 e.Handled = true;
行。
有什么方法可以仅使用 XAML
来阻止事件在树中冒泡吗?谢谢!
我相信您需要编写一些代码,而不是您试图避免的代码。
- 创建一个订阅并处理 冒泡事件。
- 将行为附加到您想要的元素 事件冒泡停止。
有一篇关于将行为插入 UWP 应用程序的 Microsoft 文章https://blogs.windows.com/buildingapps/2015/11/30/xaml-behaviors-open-source-and-on-uwp/
虽然我讨厌窃取 Gusdor 的积分。有一个内置的枚举 属性 来处理这种称为 ClickMode 的情况,您可以覆盖 Release
的 Button
的默认模式并将其设置为实例ClickMode="Press"
以获得所需的效果并允许它在任何父级之前单独接收 HitTestVisibility。
希望这对您有所帮助,干杯。