In WinRT abbiamo la possibilità di accedere a risorse come immagini e file in diverse modalità, sia programmaticamente che direttamente nel markup.
Tali risorse possono risiedere su:
- Web;
- Package dell'app;
- Application state;
Quando vogliamo visualizzare un'immagine remota è sufficiente utilizzare il suo URL, come siamo abituati a fare solitamente:
<Image Source="http://gui.aspitalia.com/images/winrtitalia/winrtitalia.png"/>
Per le risorse residenti all'interno del package dell'app abbiamo più possibilità, usare un percorso relativo al file xaml chiamante:
<Image Source="Images/winrtitalia.png"/>
Utilizzare un percorso assoluto rispetto al package stesso (semplicemente con lo "/" iniziale):
<Image Source="/Images/winrtitalia.png"/>
Oppure specificando nel path il nome di un assembly in cui è residente il file, referenziato al progetto:
<Image Source="/ClassLibrary1/Images/winrtitalia.png"/>
Quando abbiamo la necessità di referenziare un file da codice non assimilabile ad uno specifico URI, ad esempio una libreria o un IValueConverter, possiamo utilizzare lo schema ms-appx che ci permette di raggiungere sempre quei file presenti all'interno del package:
<Image Source="ms-appx:///Images/winrtitalia.png"/>
return string.Format("ms-appx:///Assets/up{0}.png", parameter);In WinRT, inoltre, abbiamo a disposizione tre tipologie di cartelle legate all'applicazione:
- LocalFolder: è una cartella locale del device su cui è installata l'app;
-TemporaryFolder: è una cartella locale come LocalFolder, ma il suo contenuto può essere cancellato indeterministicamente dal sistema operativo in caso di assenza di spazio;
- RoamingFolder: è una cartella remota condivisa da tutti i device dell'utente su cui ha installato l'app.
Possiamo accedere ai file residenti in queste cartelle usando lo schema ms-appdata con l'utilizzo nel path di, rispettivamente, local, temp e roaming:
<Image Source="ms-appdata:///local/Images/winrtitalia.png"/>
<Image Source="ms-appdata:///temp/Images/winrtitalia.png"/>
<Image Source="ms-appdata:///roaming/Images/winrtitalia.png"/>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestione degli eventi nei Web component HTML
Selettore CSS :has() e i suoi casi d'uso avanzati
Le cron expression di un workflow di GitHub
Gestire codice JavaScript con code splitting e lazy loading
Esporre tool MCP con Azure Functions
Integrare modelli AI in un workflow di GitHub
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Ciclo di vita risorse con .NET Aspire
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Ridurre il reflow cambiando il CSS
I più letti di oggi
- Le DirectInk API nella Universal Windows Platform
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Sfruttare una CDN con i bundle di ASP.NET
- Inserire le news di Punto Informatico nel proprio sito
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps


