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
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
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.
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
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
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.
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
Si tu veux vraiment utiliser le toolkit (je vois pas trop l'utilité) envoi le liens et on pourra investiguer :-)
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
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
Je ne gère pas le type. Je gère juste le faite que l'utilisateur est appuyé à un ou plusieurs endroit.
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
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
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
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
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:
jusque là tout se passe bien:
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 ...
Ensuite je gère l'action Move des points et voici le code:
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 ....
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
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager