App Windows 8 Metro-Style, Bing Map e snapped view
Lavorando sulla mia prima app per Windows 8 mi sono scontrato con un problema davvero fastidio e difficilmente debuggabile.
In pratica, ho implementato una normalissima Page che – in condizioni normali di full-screen – mostra una BingMap che visualizza un volo aereo. Sulla mappa potete fare normali operazioni come zoom, pan, etc. etc. Nella versione snapped view della stessa pagina avevo deciso di rimuovere la BingMap, e di mostrare solo un’altra serie di informazioni. Quello che accadeva è nel momento in cui facevo lo snap della pagina, l’app si schiantava e Visual Studio mi segnalava una unhandled exception. Ho cercato di capire per sicuramente più di un paio d’ore, alla fine sono riuscito ad isolare il problema, che riguardava proprio la BingMap. Se la rimuovevo dallo XAML, infatti, tutto funzionava senza problemi. La cosa si verificava sia se metteva in snapped la pagina – come ho appena descritto – sia se partivo dalla pagina precedente in snapped view.
Come risolvere?
Questa cosa è spiegata sommariamente nella sezione Q&A della pagina Bing Maps SDK for Metro style apps (RP).
Per risolvere, quindi, basta impostare una MinWidth al controllo BingMap, impostandolo ad un valore qualsiasi maggiore di zero. A quanto pare, infatti, durante l’operazione di snapping la width e la height finiscono uguali a zero, causando non pochi problemi, tra cui il crash dell’app e del debugger. Io l’ho impostata a “160” ed il problema è sparito!