本文介绍了如何检测何时停止toolkit:GestureListener Hold?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有办法可以检测到这一点?只要用户按住图标,我就希望继续执行操作.
Is there a way I can detect this? I want to keep performing an action as long as the user is holding on an icon.
推荐答案
注意:Amresh Kumar在建议使用操纵事件方面是正确的.另外,我在Windows Phone App Hubs论坛上得到了相同的建议,因此我编辑了这篇文章以反映代码更改.
之前,UX不稳定,因为将手指从屏幕上移开并不总是会触发取消操作.毫不奇怪,与鼠标按钮事件相比,该工具包中的GestureCompleted代码似乎更适合触摸屏.
Before, the UX was flaky because lifting my finger off the screen didn't always trigger a cancellation. Not surprisingly, the GestureCompleted code in the toolkit appears to be better geared towards touchscreens than are mouse button events.
XAML:
<iconControls:iconUpDownArrow>
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener Tap="RangeUpTap" Hold="RangeUpHold" GestureCompleted="RangeUpCancel" />
</toolkit:GestureService.GestureListener>
</iconControls:iconUpDownArrow>
代码:
private void RangeUpTap(object sender, GestureEventArgs e)
{
RangeIncrementUp(sender, e);
}
private readonly TimeSpan _rangeIncrementTimeSpan = new TimeSpan(1500000);
private readonly DispatcherTimer _rangeIncrementTimer = new DispatcherTimer();
private void RangeUpHold(object sender, GestureEventArgs e)
{
_rangeIncrementTimer.Interval = _rangeIncrementTimeSpan;
_rangeIncrementTimer.Tick += RangeIncrementUp;
_rangeIncrementTimer.Start();
}
private void RangeUpCancel(object sender, GestureEventArgs e)
{
_rangeIncrementTimer.Stop();
_rangeIncrementTimer.Tick -= RangeIncrementUp;
}
private void RangeIncrementUp(object sender, EventArgs e)
{
int range = Convert.ToInt32(tBoxRange.Text);
if (range < 1000)
{
range += 10;
}
tBoxRange.Text = range.ToString();
}
这篇关于如何检测何时停止toolkit:GestureListener Hold?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!