Je n’arrive pas à obtenir une saisie tactile de TouchPanel dans Windows Phone 7

J’ai démarré un nouveau projet dans Visual Studio et j’essaie d’utiliser la classe statique TouchPanel pour obtenir des entrées. J’ai activé le geste ‘Tap’ avec la propriété EnabledGestures, mais lorsque je touche l’écran, le geste ne s’enregistre pas (c’est-à-dire que TouchPanel.IsGestureAvailable renvoie false).

D’autres choses, telles que Mouse.GetState (). LeftButton == ButtonState.Pressed ne prouvent jamais la vérité, même si mon projet précédent (basé sur un exemple de projet Microsoft) fonctionnait toujours sans problème.

Quelqu’un a-t-il une idée de la raison pour laquelle je n’arrive pas à obtenir une quelconque consortingbution de l’appareil?

Voici comment je le configure – dans le constructeur de la page, je règle le type de geste:

// Constructor public MainPage() { InitializeComponent(); TouchPanel.EnabledGestures = GestureType.Tap; } 

Ensuite, dans le balisage XAML de la grid principale, je la lie à un gestionnaire d’événements ManipulationCompleted:

   

Ensuite, dans le même gestionnaire d’événements:

 private void LayoutRoot_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e) { if (TouchPanel.IsGestureAvailable) { if (TouchPanel.ReadGesture().GestureType == GestureType.Tap) { Debug.WriteLine("A"); } } } 

Travaille pour moi dans un projet Silverlight. Dans XNA, vous devriez également append les types de geste dans le constructeur:

 public Game1() { graphics = new GraphicsDeviceManager(this); TargetElapsedTime = TimeSpan.FromTicks(333333); TouchPanel.EnabledGestures = GestureType.Tap; } 

Ensuite, dans la méthode Update, vous avez la même vérification:

 protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); if (TouchPanel.IsGestureAvailable) { if (TouchPanel.ReadGesture().GestureType == GestureType.Tap) { Debug.WriteLine("A"); } } // TODO: Add your update logic here base.Update(gameTime); }