0

アプリで両方のタイプの入力 (ジェスチャーと単純なタッチ) を使用する必要があります。そして、私はそれに問題がありました。たとえば、ダブルタップジェスチャを使用すると、検出される前に、単純なタッチが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 を呼び出します。ダブル タップの場合のみ処理したいです。これを修正するには?私の英語で申し訳ありませんが、私の質問が明確であることを願っています。どんな助けでも大歓迎です

4

2 に答える 2

0

これを行う唯一の方法は、TouchPanel.EnabledGestures を使用せずに独自の入力をコーディングすることであるという結論に達しました。

于 2013-05-23T13:58:53.813 に答える