September 2010 Blog Posts

OrientationChange event on Windows Phone Emulator

When using the Windows Phone emulator pressing the Pause button activates the hardware keyboard that you can use in place of the on-screen keyboard emulator to interact with the application. A little-known detail is that if you turn on this feature the OrientationChange event is no longer generated until you restore the software keyboard back (this is by design) This detail has made me spend a moment of panic yesterday so I wanted to share it. Technorati Tags: Windows Phone,OrientationChangedEvent

posted @ Wednesday, September 29, 2010 7:51 PM | Feedback (1)

SmartPanorama: A Panorama control extension

The Panorama control is certainly one of the most interesting controls available on Windows Phone 7 toolset, unfortunately it has a defect that is evident during Tombstoning or when you navigate to a page containing a Panorama and try to set its initial view to an item other than the first one. To better understand what the problem is, let’s start with this page: that has following code associated in order to properly handle its tombstoning: protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e){ base.OnNavigatedFrom(e); this.State["InitialIndex"] = MyPano.SelectedIndex;}protected override...

posted @ Monday, September 27, 2010 9:12 PM | Feedback (1)

[WP7] SmartPanorama: A Panorama control extension

Il controllo Panorama è sicuramente tra quelli più d’impatto dell’intero toolset di Windows Phone 7, sfortunatamente il controllo ha un difetto che si evidenzia durante il tombstoning oppure quando volete navigare verso una pagina che contiene un Panorama posizionandolo verso un PanoramaItem diverso dal primo. Per capire meglio il problema supponiamo di avere questa pagina: e di avere utilizzato questo codice per gestirne correttamente il tombstoning: protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e){ base.OnNavigatedFrom(e); this.State["InitialIndex"] = MyPano.SelectedIndex;}protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e){ base.OnNavigatedTo(e); if (this.State.ContainsKey("InitialIndex"))...

posted @ Monday, September 27, 2010 9:06 PM | Feedback (2)

[WP7] Tombstoning vs Launchers and Chooser

Non tutti i launcher e/o Choosers causano il tombstoning dell’applicazione, ad  esempio lanciano un  EmailComposerTask l’applicazione non viene disattivata. I Launcher e Chooser che causano sempre il tombstoning dell’applicazione sono: WebBrowserTask MarketplaceDetailTask MarketplaceHubTask MarketplaceReviewTask MarketplaceSearchTask SaveEmailAddressTask SavePhoneNumberTask SearchTask SmsComposeTask Quelli che “potrebbero” sono: PhotoChooserTask CameraCaptureTask MediaPlayerLauncher EmailAddressChooserTask PhoneNumberChooserTask Multiplayer...

posted @ Tuesday, September 21, 2010 4:24 PM | Feedback (0)

[WP7] How to get Windows Phone Device unique identifier

Una delle domande più ricorrenti relative a Windows Phone 7 è:  Esiste la possibilità di identificare in maniera univoca un device? (attenzione: ho scritto device, non utente…) la risposta è si, attraverso la classe DeviceExtendedProperties la quale espone una lunga serie di informazioni interessanti come Memoria totale, Memoria occupata, Versione firmare e hardware etc… Personalmente per comodità mi sono wrappato tutto in una classe DeviceInformation e ho convertito i 20 bytes che identificano il device in un unsigned integer, attenzione che la chiamata ritorna un UnAuthorizedAccessException se non avete attivato ID_CAP_IDENTITY_DEVICE in WMAppManifest.xml ...

posted @ Sunday, September 19, 2010 9:10 AM | Feedback (2)

Accedere alla porta seriale da Silverlight 4.0

Non capita spesso, ma nel caso dobbiate accedere alla porta seriale della macchina dove sta girando un applicazione Silverlight 4.0 full trust, ecco un interessante libreria: http://interopcom.codeplex.com/ Technorati Tags: Silverlight 4.0,COM Port

posted @ Friday, September 17, 2010 3:02 PM | Feedback (0)

[WP7] The client who called IAccessControl::IsAccessPermitted was the trustee provided tot he method

Ci sono cose che dicono tutti, (BTW: Lo sapete che sono usciti I tools in RTM vero?) e cose che invece ti fanno dannare e che succedono solo a te… In ogni caso: Se salvando lo stato della vostra applicazione prima del tombstoning vi trovate con questo meraviglioso errore: evidentemente avete superato lo spazio disponibile per lo state che, per la cronaca , equivale a: 2MB per ogni Pagina e 4MB per l’intera applicazione. http://msdn.microsoft.com/en-us/library/microsoft.phone.controls.phoneapplicationpage.state(v=VS.92).aspx Soluzioni? Salvare meno dati oppure usare IsolatedStorage perdendo però in prestazioni. Certo, un messaggio leggermente...

posted @ Friday, September 17, 2010 11:40 AM | Feedback (1)