2012-03-09 67 views
2

我正在开发一个依靠Hold手势开始执行特定任务的Windows Phone应用程序。问题是触发Hold Status之前必须经过的默认时间量为1 secondWindows Phone Hold手势

有什么方法可以将此设置更改为1/2秒?我明白我可以处理MouseOver事件并添加一个定时器,然后触发我的任务,但是我想尽可能避免这样做。

顺便说一句,我可以使用Windows Phone SDK 7.0或7.1用于此目的,所以没有限制。

回答

6

不可能改变保持事件的时间。

你为什么不使用MouseLeftButtonDown它? 将looke这样

bool hold = false; 
DispatcherTimer timer = new DispatcherTimer(); 

private void x_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
    { 
     hold = true; 
     timer.Interval = new TimeSpan(0, 0, 0, 0, 500);//days,hours,minutes,seconds,milliseconds 
     timer.Tick += new EventHandler(timer_tick); 
     timer.Start(); 
    } 
private void x_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
    { 
     hold=false; 
    } 

private void timer_Tick(object sender, EventArgs e) 
    { 
     timer.Stop(); 
     if(hold = true) 
      { 
      //et voilà, hold-event after 0,5 seconds 
      // place actions that should be handled after 0,5seconds HERE 
      } 
    } 
+0

谢谢您的答复,我希望避免处理任何按钮事件。在接受答案之前,我接着看了反射器中的实际手势代码,看起来像我没有办法扩展类或重写任何方法,因为它们是由框架内深层的类报告的。 – evasilchenko 2012-03-12 20:09:08