Sono riuscito a implementare pinch zoom e panning agganciando fino agli eventi ManipulationDelta e ManipulationStarted (su un controllo immagine):Smooth pinch-zoom e panoramica su Windows Phone 8
private void image_OnManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
var transform = (CompositeTransform)image.RenderTransform;
// pan
transform.TranslateX = _translationX + e.CumulativeManipulation.Translation.X;
transform.TranslateY = _translationY + e.CumulativeManipulation.Translation.Y;
// zoom
if (e.PinchManipulation != null)
{
transform.CenterX = e.PinchManipulation.Original.Center.X;
transform.CenterY = e.PinchManipulation.Original.Center.Y;
transform.ScaleX = _scaleX * e.PinchManipulation.CumulativeScale;
transform.ScaleY = _scaleY * e.PinchManipulation.CumulativeScale;
}
}
private void image_OnManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
// the user has started manipulating the screen, set starting points
var transform = (CompositeTransform)image.RenderTransform;
_scaleX = transform.ScaleX;
_scaleY = transform.ScaleY;
_translationX = transform.TranslateX;
_translationY = transform.TranslateY;
}
Ma la paragonato a la fluidità del resto dell'interfaccia utente del telefono Windows si sente molto placida e rigida. Non c'è inerzia nel movimento.
C'è un modo per rendere più fluidi i movimenti? Usare le animazioni e gli storyboard è un modo per farlo? Ho provato a utilizzare ScrollView per ottenere un panning minimo, ma gli eventi ManipulationDelta non vengono attivati correttamente.
Solo un aggiornamento come la questione sembrano essere popolari: Ho finito per utilizzare il codice sopra combinato con le animazioni create a livello di codice per ottenere quella sensazione di "inerzia". Dovevo anche ottimizzare usando semplici controlli (tele e immagini bitmap nella cache), per farlo funzionare senza intoppi. – Pking
Possibile duplicato - Bene spiegato qui. [http://stackoverflow.com/questions/13969400/pinch-to-zoom-functionality-in-windows-phone-8](http://stackoverflow.com/questions/13969400/pinch-to-zoom-functionality- in-finestre-phone-8) –