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
Scrivere selettori CSS più semplici ed efficienti con :is()
Le novità di Angular: i miglioramenti alla CLI
Generare velocemente pagine CRUD in Blazor con QuickGrid
Creare un webhook in Azure DevOps
Evitare il flickering dei componenti nel prerender di Blazor 8
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Creare una libreria CSS universale: Immagini
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Referenziare un @layer più alto in CSS
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Estrarre dati randomici da una lista di oggetti in C#
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core