【发布时间】:2017-01-19 00:17:36
【问题描述】:
我有几个按钮可用作数量的 +/- 步进控件。 Windows 的默认行为是,如果它被认为是双击并且不会触发第二个轻击事件,则会吸收轻击:
如果用户交互也触发了 DoubleTapped,则 Tapped 将首先触发以表示第一次点击,但第二次点击不会触发额外的 Tapped。
但这为步进按钮提供了非常糟糕的用户体验。用户应该能够随心所欲地轻按它,并且它应该每次都增加计数器,而不是像当前那样每隔一次轻按一次。
奇怪的是我在任何地方都找不到如何做到这一点。起初我以为我拥有 IsDoubleTapEnabled 属性,但遗憾的是,这一切都失败了。无论是打开还是关闭,行为都完全相同。
【问题讨论】:
-
一个简单的解决方法是设置 button.MouseDoubleClick += increment();或您为点击事件使用的任何类。这样他们都触发了相同的方法。确保您在 Initialize 部分只执行一次,否则您最终会为每个双击事件激活您的增量方法多次。
-
我想到了,但感觉超级hacky,我想看看是否真的有一个“正确”的方法来做到这一点。
-
双击处理程序具有不同的签名,因此您甚至不能共享相同的方法,这使痛苦更加复杂。
-
您可以使用 button.PreviewMouseLeftButtonDown 事件代替。这对我有用。