アプリで両方のタイプの入力 (ジェスチャーと単純なタッチ) を使用する必要があります。そして、私はそれに問題がありました。たとえば、ダブルタップジェスチャを使用すると、検出される前に、単純なタッチが1回検出されます。シンプルなタッチには独自のロジックがあり、多くの問題を引き起こすため、これは私が期待する方法ではありません。ドラッグに関する同じ問題は、ドラッグを再度検出する前に、最初に単純なタッチを検出しました。単純なタッチ ロジックを処理せずにジェスチャを処理するにはどうすればよいですか。ここで私がそれをしようとしている方法:
TouchPanel.EnabledGestures = GestureType.DoubleTap | GestureType.VerticalDrag;
while (TouchPanel.IsGestureAvailable)
{
isGesture = true;
GestureSample gestureSample = TouchPanel.ReadGesture();
switch (gestureSample.GestureType)
{
case GestureType.DoubleTap:
//some logic
break;
case GestureType.HorizontalDrag:
//some logic
break;
}
}
if (Consts.TouchCollection.Count == 1)
{
var touch = Consts.TouchCollection[0]; //here needed only first touch
switch (touch.State)
{
case TouchLocationState.Pressed:
//This one called first if used double tap
break;
case TouchLocatiomState.Moved:
//smth
break;
case TouchLocationState.Released:
//smth
break;
}
}
ダブルタップ ジェスチャを使用する場合、このコードは Pressed -> Released -> DoubleTap -> Pressed を呼び出します。ダブル タップの場合のみ処理したいです。これを修正するには?私の英語で申し訳ありませんが、私の質問が明確であることを願っています。どんな助けでも大歓迎です