Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Windows Phone 7: gestire il tasto Back in presenza di ComboBox

Come sapete, la pubblicazione di un'app per Windows Phone 7 sul Market Place passa attraverso il procedimento di certificazione dell'app stessa da parte di Microsoft, che si assicura del fatto che le linee guida previste siano state rispettate.

Una di queste regole è la seguente: in presenza di una ComboBox o di una dialog il cui stato grafico sia quello di "aperto" (es. in una Combo con la tendina espansa) il tasto Back del telefono dev'essere gestito in modo tale da non eseguire la navigazione alla pagina precedente, bensì alla sua pressione i controlli "espansi" devono semplicemente chiudersi e tornare allo stato originario.

In altre parole, se ho una Combo con la tendina espansa e premo Back, devo eseguire codice che riporti la tendina sullo stato di collapsed.

Come si può fare da codice? La cosa è abbastanza semplice da realizzare poiché ci basta eseguire l'override del gestore di evento chiamato OnBackKeyPress che viene invocato proprio alla pressione del tasto Back. Il codice seguente mostra un esempio in cui è presente una ComboBox per la quale viene verificato lo stato di aperta o chiusa; nel primo caso, alla pressione di Back la dropdown viene chiusa; se è già chiusa, possiamo consentire la navigazione alla pagina precedente invocando il metodo della classe base:

    Protected Overrides Sub OnBackKeyPress(ByVal e As System.ComponentModel.CancelEventArgs)
        Select Case Me.MiaComboBox.IsDropDownOpen
            Case Is = True
                Me.MiaComboBox.IsDropDownOpen = False
                e.Cancel = True
                Exit Sub
            Case Else
                MyBase.OnBackKeyPress(e)

        End Select
    End Sub

Alessandro

Print | posted on venerdì 7 gennaio 2011 11:13 | Filed Under [ Silverlight e Windows Phone ]

Powered by:
Powered By Subtext Powered By ASP.NET