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
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Gestione file Javascript in Blazor con .NET 9
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
.NET Conference Italia 2024
Simulare Azure Cosmos DB in locale con Docker
Applicare un filtro per recuperare alcune issue di GitHub
Utilizzare gRPC su App Service di Azure
Utilizzare una qualunque lista per i parametri di tipo params in C#
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Utilizzare l nesting nativo dei CSS
Generare una User Delegation SAS in .NET per Azure Blob Storage