2012-03-09 30 views
2

特定のタスクを開始するためにHold Gestureに依存しているWindows Phoneアプリケーションを開発しています。問題は、ホールドジェスチャーがトリガーされる前に経過しなければならないデフォルトの時間量が1 secondであることです。Windows Phone Hold Gesture

この設定を1/2秒に変更する方法はありますか?私はMouseOverイベントを処理して、自分のタスクを起動するタイマーを追加することができると理解していますが、可能な限り、これを避けたいと思います。

ところで、私はWindows Phone SDK 7.0または7.1をこの目的のために使用できますので、そこには制限はありません。

答えて

6

ホールドイベントの時刻を変更することはできません。

なぜあなたはMouseLeftButtonDownを使用していませんか? はこのようになります

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