2012-05-05 6 views
0

Windows Phoneでタッチするとボタンの色が変わりますが、使用できる唯一のジェスチャはタップが完了した後に呼び出されるGestureType.Tapです。これにより、ユーザーがタッチした後に色が変わります。ボタン。タッチした直後にタッチを検出するにはどうすればよいですか?Windows Phone/XNA検出の開始

 while (TouchPanel.IsGestureAvailable) 
     { 

      GestureSample gs = TouchPanel.ReadGesture(); 
      switch (gs.GestureType) 
      { 
       //this is called AFTER the tap 
       case GestureType.Tap: 
        if (Restart.tapped(gs.Position)) 
         Restart.selectDrawColor = Color.OrangeRed; 
        else 
         Restart.selectDrawColor = Color.White; 

        if (uploadScore.tapped(gs.Position)) 
         uploadScore.selectDrawColor = Color.OrangeRed; 
        else 
         uploadScore.selectDrawColor = Color.White; 

        if (MainMenu.tapped(gs.Position)) 
         MainMenu.selectDrawColor = Color.OrangeRed; 
        else 
         MainMenu.selectDrawColor = Color.White; 
        break; 
      } 

     } 

答えて

2

画面に触れることはジェスチャーとみなされないので、ReadGestureはそれを返しません。 TouchPanel.GetState()に電話し、StateTouchLocationオブジェクトがPressedのものであるかどうかを調べる必要があります。

// using System.Linq; 

TouchLocation[] newTouchLocations = TouchPanel.GetState() 
    .Where(loc => loc.State == TouchLocationState.Pressed) 
    .ToList(); 

documentationによると、TouchLocationState.Pressedは意味:

このタッチ位置の位置が新しく追加されました。

+1

この日のZune HDでは、これはタッチ入力を読み取るために使用したすべてでした...そして、私たちはそれを気に入っていました! –

+0

コードスニペットでは、配列は汎用リストでいっぱいになります。ここで '.ToList()'の代わりに '.ToArray()'を使うべきではありませんか? –

関連する問題