martedì 6 settembre 2011

Gesture in Windows Phone 7


Windows Phone 7 a differenza di altri sistemi operativi mobili non gestisce in maniera nativa le gesture. Esistono diverse possibilità per gestirle per vie esterne. In particolare:

• Un particolare toolkit messo a disposizione dalla Microsoft e dagli sviluppatori di Silverlight (http://silverlight.codeplex.com/)
• Attraverso l’uso delle librerie XNA
Questa seconda possibilità è consigliata in particolare nel caso si vogliano sviluppare giochi. Spieghiamo brevemente come è possibile farlo.





1. Supporto XNA

Fare riferimento al precedente post


2. Toolkit Silverlight

Per prima cosa occorre scaricare l’apposito toolkit al seguente indirizzo web http://silverlight.codeplex.com/ . Una volta installato il plugin aggiungere come reference al proprio progetto l’assembly “Microsoft.Phone.Controls.Toolkit”. Successivamente occorre referenziare l’assembly nell’XAML: namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit" Aggiungere un’istanza del GestureListener all’elemento Grid principale della pagina nella quale si vogliono catturare le gesture:


<Grid x:Name="LayoutRoot" Background="Transparent">

   <toolkit:GestureService.GestureListener>


      <toolkit:GestureListener Flick="OnFlick" />

   </toolkit:GestureService.GestureListener>


   ....

</Grid>


Basta poi aggiungere il metodo OnFlick nella classe associata alla pagina:



        private void OnFlick(object sender, FlickGestureEventArgs e)
        {
            if (e.HorizontalVelocity < 0)

this.NavigationService.Navigate(new Uri("/Send_Message.xaml",      UriKind.Relative));
            else
this.NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
        }


In questo caso si sta gestendo l’evento scroll orizzontale. Se l’attributo HorizontalVelocity ha un valore minore di zero indica che lo scroll è da sinistra a destra altrimenti per un valore maggiore di zero indica uno scroll da destra a sinistra.
Gli altri eventi gestibili sono ad esempio il singolo tocco (tap), il doppio tocco (double tap), scroll orizzontale (horizontaldrag), scroll vertical (verticaldrag) e molti altri.

Nessun commento:

Posta un commento