0

Ich verwende die Ziehbewegung, um Elemente auf einer Leinwand zu verschieben. Ich benutze die Pinch-Geste, um die Größe der Leinwand zu vergrößern/zu verkleinern. Was ich jetzt machen möchte, ist, die gesamte Leinwand basierend auf der Bewegung beider Finger im Handumdrehen zu bewegen. Ich weiß, dass ich das mit dem Verschieben machen kann, aber ich brauche das für Elemente auf der Leinwand selbst, und manchmal ist die gesamte Leinwand mit Gegenständen bedeckt, die es so machen würden, dass du die Leinwand nicht auswählen könntest, um sie zu bewegen.Windows Phone 7: Verwenden von Pinch Gesten für Pinch und als sekundäre Drag-Geste

alt text

Ist dies möglich mit dem PinchGestureEventArgs?

+1

Mabe ein wenig Code? Benutzt du einige Ereignisse, die platzen? –

Antwort

0

Ich bin sicher, dass Sie diese vor langer Zeit gelöst haben, aber ich war vor kurzem tue etwas ähnliches selbst:

Im PinchDelta Fall, dass Sie eine PinchGestureEventArgs erhalten.

Sie können die GetPosition-Methode für das Ereignis verwenden, um die Positionen beider Finger zu ermitteln (indem Sie den zweiten Indexparameter übergeben), obwohl Sie in diesem Fall nur den ersten Finger benötigen.

Durch die Überprüfung, dass das DistanceRatio anzeigt, dass sich die Entfernung zwischen den Fingern seit dem Beginn des Pinch nicht wesentlich geändert hat, können Sie überprüfen, ob es sich um Ziehen oder Quetschen handelt, und den Canvas basierend auf der von GetPosition() angegebenen Position verschieben.

Sie müssen einen Zustand beibehalten, um sich an die zuletzt von Ihnen bearbeitete Position zu erinnern, damit Sie das Delta berechnen können.