WP7
Posts related to Windows Phone 7
Adding a secondary tile that ‘deep links’ into your application is a trivial task and can be done in just a few lines of code… private void button1_Click(object sender, RoutedEventArgs e){ ShellTile tile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString() == "/Page2.xaml"); if (tile == null) { StandardTileData secondaryTile = new StandardTileData { Title = "My app", BackgroundImage...
If you get error 0x81030120 when deploying an application to a Mango (7.5) device If might depend on presence on ID_CAP_INTEROPSERVICES capabilities inside application manifest, remove it and problem should gone. Technorati Tags: WP7
The Windows Phone application I’m working on is made up of several list views where each item has quite similar detail views. In order to avoid duplicating views the idea was to create a single list page and use a sort of WPF’s DataTemplateSelector to select proper ItemTemplates so that same view can appear completely different to the final user. The idea works like a charm like navigation from list to detail page too apart a little problem arised when I encountered a special case: When an item is selected, instead of navigating to Item’s detail I need to navigate...
Ieri sera ho dedicato un po’ di tempo ad una piacevole sorpresa ricevuta in mattinata: L’ultima fatica letteraria degli amici di ASPItalia: Daniele Bochicchio, Marco Leoncini, Alessio Leoncini, Cristian Civera e Marco de Sanctis (in rigoroso ordine casuale…) dal titolo “Sviluppare applicazioni per Windows Phone” Ogni volta che leggo dell’inizio di un loro nuovo libro la domanda che mi pongo è sempre la stessa? “Ma dove lo trovano il tempo?”,; evidentemente hanno trovato una formula segreta perchè ogni volta riescono nel loro intento ovvero condividere la loro conoscenza e (sopratutto) esperienza spesso su nuove come, ad esempio, Windows...
If you’re a Windows Phone 7 developer you’ll probably know that with ‘Mango’ it is now possible to persist data using a local database based on SQL Server CE whose data files are stored inside isolated storage, this is a quick overview of how to save and load data on a Windows Phone 7.1 application. First of all, if you, like me, gave Linq2Sql a change when it came out you’ll probably happy to know that your investment has gone totally lost from Entity Framework advent since all database interaction is based on Linq2Sql. In...
Jaime Rodriguez in this post describes some new features of the SystemTray class in upcoming WP7 Mango release, I won’t repeat them since Jaime’s post is quite explanatory, I’ve instead investigated more the “Progress” feature mentioned on that post. Here’s how I’ve configured my SystemTray on MainPage.xaml: <phone:PhoneApplicationPage x:Class="SystemTrayBackground.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ...
WP7 Factor è il concorso indetto da Microsoft Italia che oltre a mettere in risalto le vostre applicazioni Windows Phone 7 vi fa vincere uno Zune Pass a settimana e, ad Aprile 2011, un buono acquisto da 3000 euro e 2 da 1000 euro. Aprile è ormai vicino e sono sicuro che parecchi di voi hanno sviluppato app interessanti che meritano di essere premiate, quindi: cosa aspettate? pubblicate la vostra app e segnalatela all’indirizzo wp7factor[@]ugidotnet.org Perchè vi invito a farlo? perchè faccio parte della giuria che selezionerà I vincitori finali e premiare un membro di...
Today I lost some time trying to figure out why my Windows Phone 7 application settings got lost as soon as the application was restarted. After several tests have concluded that the offending code was following one, which, at startup, deletes some “*.cache” files used by the application to store some temporary information. private void ClearCache(){ string[] cacheFiles = this.store.GetFileNames("*.cache"); foreach (string cacheFile in cacheFiles) { this.Delete(cacheFile); }}
Everything looks ok, except that the application settings are stored in a file called “__ApplicationSettings.cache” and so they were...
Sometimes you might need to play multiple sounds at once (games are just one example) and as stated into documentation here: http://msdn.microsoft.com/en-us/library/ff426928(VS.96).aspx you can have only one MediaElement on a page, so: how do I play multiple sounds at the same time? If you can afford to use plain 16 bit mono wav files you can use XNA’s SoundEffect class in just a few steps: Add a project reference to Microsoft.Xna.Framework assembly. Add the wav files to your project using Content as default build action (don’t forget that Resource is a load time performance...
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
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...
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"))...
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...
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 ...
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...
Anche se sviluppare un applicazione su Windows Phone 7 è, direi al 80%, del tutto simile allo sviluppo di un applicazione Silverlight 3.0, non dobbiamo dimenticarci di quel 20% che è sicuramente quello destinato a farci penare prima del rilascio, in quel 20% oltre al Tombstoning aggungerei sicuramente l’aspetto performances perchè, non dimentichiamolo, abbiamo comunque a che fare con un dispositivo e non con un personal computer. Un esempio dove un dettaglio può far la differenza è la modalità di embedding di eventuali risorse all'interno di un progetto WP7. Da questo punto di vista gli...
Le applicazioni Windows Phone 7 vengono eseguite nella propria sandbox e non hanno accesso diretto alle funzionalità del telefono come ad esempio: l’elenco dei contatti, l’invio degli SMS oppure l’invio di una semplice telefonata. Per far questo bisogna utilizzare delle opportune API definite nella documentazione col nome di Launchers e Choosers, già dal nome dovreste intuire che queste sono a tutti gli effetti delle applicazioni built-in (non a caso le relative classi stanno in Microsoft.Phone.Task) le quali si differenziano dal fatto che i Choosers, a differenza dei Launchers, possono ritornare delle informazioni all’applicazione chiamante. Nella...
In Windows Phone 7 ogni singola PhoneApplicationPage è automaticamente ospitata all’interno di un PhoneApplicationFrame che viene impostato come RootVisual allo startup dell’applicazione all’interno del metodo CompleteInitializePhoneApplication presente in App.xaml.cs (l’evento RootFrame.Navigated scatta dopo che lo SplashScreen è stato sostituito con la pagina iniziale dell’applicazione) Visto che PhoneApplicationFrame estende la classe Frame introdotta in Silverlight 3.0 la navigazione da una pagina all’altra avviene esattamente secondo la stessa modalità, quindi per navigare da MainPage a AnotherPage è sufficiente usare la classe NavigationService. private void OnClick(object sender, RoutedEventArgs e){ NavigationService.Navigate(new Uri("/AnotherPage.xaml", UriKind.Relative));}
Anche in...
Quando si crea un nuovo progetto Windows Phone 7 viene automaticamente creata una pagina MainPage.xaml che rappresenta la pagina iniziale dell’applicazione: Nel caso si voglia cambiarla il processo non è esattamente lo stesso di Silverlight, questo perchè la pagina è in realtà ospitata all’interno del Frame di navigazione PhoneApplicationFrame il quale viene impostato come RootVisual allo startup all’interno di App.Xaml.cs 1: private void InitializePhoneApplication()
2: {
3: ...