Microsoft Surface コントロールを使用する WPF4 タッチ アプリケーションを開発しています。ScatterViewItem で MouseDoubleClick イベントをキャッチしたいと思います。マウスを使用するとイベントが発生しますが、指を使用するとイベントが発生しません。なんで ?
どうもありがとう。
更新:
最後に、このコードを作成して、TouchLeave イベントを 2 つの TouchLeave イベント間の所要時間 500ms で制限された四角形 (幅と高さ 16px) で単純なダブルタップを再現しました。このコードは最適化されていませんが、動作します。コメントがある場合は、躊躇しないでください :)
private bool _doubleHasTimeAndPos = false;
private TimeSpan? _doubleTouchTime = null;
private Point? _doubleTouchPoint = null;
private void ScatterViewItem_TouchLeave(object sender, TouchEventArgs e)
{
if (!this._doubleHasTimeAndPos)
{
this._doubleTouchTime = DateTime.Now.TimeOfDay;
this._doubleTouchPoint = e.GetTouchPoint(this.scatterView).Position;
this._doubleHasTimeAndPos = true;
}
else
{
if (DateTime.Now.TimeOfDay.Subtract(this._doubleTouchTime.Value).TotalMilliseconds <= 500)
{
Point touchPoint = e.GetTouchPoint(this.scatterView).Position;
double xDelta = Math.Abs(this._doubleTouchPoint.Value.X - touchPoint.X);
double yDelta = Math.Abs(this._doubleTouchPoint.Value.Y - touchPoint.Y);
if (xDelta <= 16 && yDelta <= 16)
{
// DOUBLE TAP here !
}
}
this._doubleTouchTime = null;
this._doubleTouchPoint = null;
this._doubleHasTimeAndPos = false;
}
}