TouchDownイベントとTouchUpイベントにそれぞれ下記の関数をbindすればよい。
private readonly Stopwatch SWTouch = new Stopwatch(); private void Image_TouchUp(object sender, TouchEventArgs e) { if (SWTouch.Elapsed.TotalMilliseconds > 700) { RightButtonFunc(); } else { LeftButtonFunc(); } } private void Image_TouchDown(object sender, TouchEventArgs e) { SWTouch.Restart(); }
なお、マウスイベントと両立させるには、MouseButtonEventArgs
のStylusDevice
が null
かどうかをチェックすれば良い。nullでない場合はタッチかスタイラスペンによる入力である。
public void Image_MouseDown(object sender, MouseButtonEventArgs e) { if (e.StylusDevice != null) return; //... }