2012-03-09 46 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

相關問題