IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Phone .NET Discussion :

Gesture Manager du ToolKit


Sujet :

Windows Phone .NET

  1. #1
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut Gesture Manager du ToolKit
    Hello,

    je cherche à asvoir comment faire pour détecter plusieurs points sur un Canvas auquel j'ai mis le Gesture Manager du ToolKit.

    En gros on a un évènnement qui contient une méthode GetPosition() mais pas plusieurs touches sur l'écran !

    Merci
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 242
    Points : 296
    Points
    296
    Par défaut
    Hello .NET,

    Dans l'évènement "Touch.FrameReported", il y a l'argument qui peut te renvoyer une collection de points.
    La méthode s'appelle "GetTouchPoints(UIElement ui)" où ui sera ton canvas

    Cordialement,
    Mafyou.

  3. #3
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Ok,

    Grand merci !
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  4. #4
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Citation Envoyé par Maf77 Voir le message
    Hello .NET,

    Dans l'évènement "Touch.FrameReported", il y a l'argument qui peut te renvoyer une collection de points.
    La méthode s'appelle "GetTouchPoints(UIElement ui)" où ui sera ton canvas

    Cordialement,
    Mafyou.
    Heu..

    on parle bien dela même chose !!!

    parce que dans le GestureService.GestureListener j'ai pas ce que tu dis !!
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 242
    Points : 296
    Points
    296
    Par défaut
    Je t'ai donné la solution pour avoir les endroits où l'utilisateur agit côté tactile.

    Je ne vois pas trop où tu veux en venir avec ton "GestureService.GestureListener".

    Cordialement,
    Mafyou.

  6. #6
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Hello,

    en fait jusqu'à ta solution je passais par le toolkit et son gestionnaire du tactile et je pensais qu'on parlait de la même chose
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 242
    Points : 296
    Points
    296
    Par défaut
    Si tu veux vraiment utiliser le toolkit (je vois pas trop l'utilité) envoi le liens et on pourra investiguer :-)

  8. #8
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Je peux surement m'en passer mais il permet de gérer facilement les évènnements:

    Tap, Hold, Double Tap, pinch etc....

    le toolkit se trouve sur le codeplex
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  9. #9
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 242
    Points : 296
    Points
    296
    Par défaut
    Je ne saurais pas te dire..

  10. #10
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Et comment tu fais pour gérer ces évènnements avec ta méthode ?

    Merci
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  11. #11
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 242
    Points : 296
    Points
    296
    Par défaut
    Je ne gère pas le type. Je gère juste le faite que l'utilisateur est appuyé à un ou plusieurs endroit.

  12. #12
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Donc tu ne gères que des Tap !!!

    pas de pinch ou autres.....
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  13. #13
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Bonbjour,

    A partir du SDK 7.1, il me semble que le Gesture Manager est deprecated, car les UIElements gèrent nativement les Tap, DoubleTap et Hold (par événements du même nom).

    Le Pinch peut être géré par le biais de l'évenement ManipulationCompleted.

    Touch.FrameReported est aussi utilisable pour récupérer les points de contacts en Silverlight. Son avantage est de pouvoir gérér jusqu'a 4 points de contacts.

    Plus d'info sur Touch.FrameReported :
    http://blog.naviso.fr/wordpress/?p=1479
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  14. #14
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Hello,

    merci pour le lien je vais regarder ça de plus près...

    Car j'ai besoin de pouvoir gérer plusieurs point de contact qui peuvent chacun se déplacer en même temps !!!

    Merci
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  15. #15
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Alors Touch.FrameReported est fait pour toi !
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  16. #16
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Hello,

    je reviens sur le sujet car je suis en train d'implanter la gestion du Touch.FrameReported et je rencontre un petit soucis ....

    Lors du déclenchement de l'évènement j'analyse l'action de chaque point et si c'est une action Down je sauvegarde le point dans une liste comme expliqué dans le tutoriel de Mr Blanchard.

    Voici mon code pour la sauvegarde des points:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    private void Touch_FrameReported(object sender, TouchFrameEventArgs e)
    {
      // Itération dans les points
      foreach(System.Windows.Input.TouchPoint CurrentTouchPoint in e.GetTouchPoints(this.CanvasFirewall))
      {
        // Analyse de l'action du point
        switch(CurrentTouchPoint.Action)
        {
          case TouchAction.Down:
     
            #region Gestion des descentes
     
              // Analyse du type de l'objet en dessous de la touche
              if(CurrentTouchPoint.TouchDevice.DirectlyOver is Image)
              {
                 // Récupération de l'objet image
                 Image CurrentImage = CurrentTouchPoint.TouchDevice.DirectlyOver as Image;
                 // Analyse du nom de l'image
                 if(CurrentImage.Name.StartsWith("Atom#"))
                 {
                    // Initialisation d'un point suivi
                    TrackedTouchPoint NewTrackedTouchPoint = new TrackedTouchPoint(CurrentTouchPoint.TouchDevice.Id,CurrentTouchPoint.Position);
                    // Ajout du point dans la collection
                    this.TrackedTouchPoints.Add(NewTrackedTouchPoint);
                  }
                }
     
             #endregion
    ...
    jusque là tout se passe bien:

    Ensuite je gère l'action Move des points et voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    ...
    case TouchAction.Move:
     
      #region Gestion des mouvements
     
       // Analyse du type de l'objet en dessous de la touche
       if(CurrentTouchPoint.TouchDevice.DirectlyOver is Image)
       {
         // Récupération de l'objet image
         Image CurrentImage = CurrentTouchPoint.TouchDevice.DirectlyOver as Image;
         // Analyse du nom de l'image
         if(CurrentImage.Name.StartsWith("Atom#"))
         {
           // Recherche du point dans la liste des points précédents
           foreach(TrackedTouchPoint PreviousCurrentTouchPoint in this.TrackedTouchPoints)
           {
             // Comparaison des identifiants
             if(CurrentTouchPoint.TouchDevice.Id == PreviousCurrentTouchPoint.ID)
            {
              // Mise à jour de la transformation de l'image
              ((CompositeTransform)CurrentImage.RenderTransform).TranslateX += System.Math.Round(CurrentTouchPoint.Position.X - PreviousCurrentTouchPoint.Position.X,0);
              // Mise à jour de la transformation de l'image
              ((CompositeTransform)CurrentImage.RenderTransform).TranslateY += System.Math.Round(CurrentTouchPoint.Position.Y - PreviousCurrentTouchPoint.Position.Y,0);
              // Mise à jour de la position du point suivi
              PreviousCurrentTouchPoint.Position = CurrentTouchPoint.Position;
     
              this.TextBlockDeltaX.Text = "X= " + CurrentTouchPoint.Position.X.ToString();
              this.TextBlockDeltaY.Text = "Y= " + CurrentTouchPoint.Position.Y.ToString();
     
              // Sortie
              break;
            }
          }
        }
      }                                
     
      #endregion
    Donc là ça se passe bien sauf que lors du déplacement l'image fini par se déplacer plus vite que le doigt ou la souris (Emulateur) ce qui fait que je me retrouve avec une image s'en va ....

    Je vois pas où j'ai faut là si vous pouvez me donner un coup de main ...

    Merci
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  17. #17
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Bon j'ai trouvé mon erreur ....

    J'avais laissé un code dans le DragDelta du GestureListner ....

    En revanche, avec le code ci-dessus si je prend une image sous la souris et que je la déplace vers une autre, dès que la souris passe dessus la deuxième, les deux images bouges ....

    Alors que je regarde si les Id sont identiques !!!
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. opengl sans toolkit
    Par Vermin dans le forum OpenGL
    Réponses: 9
    Dernier message: 03/02/2004, 15h44
  2. [Toolkit] setSize() tenir compte de la taskbar
    Par Stessy dans le forum AWT/Swing
    Réponses: 19
    Dernier message: 22/01/2004, 11h00
  3. Problème dans analisys Manager
    Par ien_ien23 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/07/2003, 15h38
  4. traduction du terme "managed"
    Par sarasvati dans le forum Langages de programmation
    Réponses: 11
    Dernier message: 15/05/2003, 00h01
  5. A propos des 'File management Functions' de Windows
    Par znaidi dans le forum Windows
    Réponses: 3
    Dernier message: 01/04/2003, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo