Le tile sono uno degli strumenti principali che contraddistinguono Windows Phone per fornire informazioni all'utente. Con esso è possibile mostrare del testo, un contatore e sfruttare entrambi i lati delle "mattonelle". L'elemento che più fornisce il massimo dell'espressione è sicuramente l'immagine che è possibile impostare tramite BackgroundImage e BackBackgroundImage. Solitamente è possibile impostarlo con URI relativi a file presenti nel progetto di sviluppo che poi verranno inclusi nello XAP, oppure con URI remoti, utili soprattutto se si sfruttano script server side che generano immagini dinamicamente.
Quest'ultima soluzione non andrebbe però sfruttata con secondary tile perché l'utente può perdere l'immagine al riavvio del dispositivo o in caso di problemi nel download. L'alternativa più affidabile consiste quindi nel sfruttare l'isolated storage, lo spazio che ogni app ha a disposizione per memorizzare file. Per poter utilizzare l'isolated storage bisogna però prestare attenzione a predisporre l'immagine nell'apposita cartella Shared/ShellContent.
Ipotizzando quindi di scaricare l'immagine da remoto, il codice per recuperla è il seguente:
// Scarico l'immagine WebClient client = new WebClient(); client.OpenReadCompleted += client_OpenReadCompleted; client.OpenReadAsync(new Uri("http://forum.aspitalia.com/avatars/90/Ricciolo.avatar"));
Sull'evento di completamento del download è possibile a questo punto creare il file nell'isolated storage e travasare lo Stream dell'immagine remota in quello locale.
private void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { // Travaso lo stream dell'immagine nell'isolated storaged using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication()) { using (Stream tileStream = storage.CreateFile("Shared/ShellContent/tile.png")) { e.Result.CopyTo(tileStream); } }
A questo punto è possibile aggiornare l'immagine utilizzando l'URI che punta all'isolated storage, rappresentato dallo schema isostore.
// Aggiorno l'uri della tile ShellTile tile = ShellTile.ActiveTiles.First(); tile.Update(new StandardTileData { BackgroundImage = new Uri("isostore:/Shared/ShellContent/tile.png") });
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire undefined e partial nelle reactive forms di Angular
Usare le variabili per personalizzare gli stili CSS
Inizializzare i container in Azure Container Apps
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
C# 12: Cosa c'è di nuovo e interessante
Evitare il flickering dei componenti nel prerender di Blazor 8
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Semplificare il deployment di siti statici con Azure Static Web App
Eseguire operazioni sui blob con Azure Storage Actions
Utilizzare database e servizi con gli add-on di Container App
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
I più letti di oggi
- I nuovi metodi degli array di ECMAScript 5
- Evitare (o ridurre) il repo-jacking sulle GitHub Actions
- Un custom control BoundField con dropdownlist
- .NET Core 3, C#8 and beyond
- Utilizzare long polling in HTML5 per richieste in real time
- Utilizzare le shortcut da tastiera con KeyboardAccelerator nella Universal Windows Platform
- Microsoft Security Bulletin MS05-048