【问题标题】:Tapped event fires before DoubleTapped event in WinRT在 WinRT 中的 DoubleTapped 事件之前触发 Tapped 事件
【发布时间】:2023-03-08 11:41:01
【问题描述】:

我有以下声明:

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

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

谢谢。

【问题讨论】:

  • 我无法重现该问题。 DoubleTapped-handler 对我来说很好用。

标签: xaml windows-runtime windows-store-apps winrt-xaml


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    MSDN:

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

    UX guidelines 通常不鼓励使用双击。我不会将它们与按钮一起使用,因为按钮通常不会以这种方式工作,而且您会打破用户的期望。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-15
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多