1

我有以下声明:

<Button Tapped="Handler1" DoubleTapped="Handler2" />

每次我双击按钮 Handler1 都会被触发。处理程序 2 永远不会被解雇。

谢谢。

4

2 回答 2

1

我不知道为什么 DoubleTapped 处理程序没有被调用。它应该。也许IsDoubleTapEnabled设置为 false?这不仅可以通过在 XAML 中显式设置属性来实现,还可以通过从样式继承值来实现。

但即使 DoubleTapped 工作,Tapped 事件也总是会触发一次。控件不是算命的:当第一次点击发生时,它不知道第二次点击很快就会出现,所以它会触发 Tapped 事件。如果您不希望这样,您需要实现自己的行为并忽略或延迟 Tapped 事件。

MSDN

如果用户交互也触发了 DoubleTapped,则 Tapped 将首先触发以表示第一次点击,但第二次点击不会触发额外的 Tapped。如果您希望 Tapped 与 DoubleTapped 的逻辑不同,您的 Tapped 处理程序可能需要使用特定于应用程序的变量和计时器,以避免在最终被解释为 DoubleTap 操作的交互上运行。

但是用户体验指南通常不鼓励使用双击。我不会将它们与按钮一起使用,因为按钮通常不是这样工作的,而且你正在打破用户的期望。

于 2013-06-27T12:11:35.193 回答
1

你不能这样做,因为它总是会触发第一个点击事件。您可以使用布尔值或计数器来管理双击事件和单击事件,以管理以下点击事件。

于 2013-06-27T11:59:28.260 回答