La personalizzazione è da sempre uno dei punti di forza di Windows, in quanto tramite le API abbiamo accesso a tutto il sistema operativo e possiamo permetterci di customizzare l'esperienza utente in mille modi differenti, anche all'esterno dell'applicazione stessa. Una funzionalità presente sin dalla prima versione di Windows 10, ovvero dalla build 10240, consiste nella possibilità di modificare l'immagine di sfondo del Desktop o della lockscreen, come mostrato nell'esempio seguente:
using Windows.System.UserProfile; private async Task SetLockscreenAsync(string localAppDataFileName) { if (UserProfilePersonalizationSettings.IsSupported()) { var uri = new Uri("ms-appx:///Local/" + localAppDataFileName); var file = await StorageFile.GetFileFromApplicationUriAsync(uri); await UserProfilePersonalizationSettings.Current.TrySetLockScreenImageAsync(file); } }
La classe UserProfilePersonalizationSettings ci permette infatti di accedere alle impostazioni relative all'utente attualmente loggato in Windows e, se il device supporta la personalizzazione della lockscreen, allora di cambiare l'immagine di sfondo attraverso la chiamata a TrySetLockScreenImageAsync. Il codice è molto simile anche nel caso in cui vogliamo modificare l'immagine di sfondo del Desktop, in quanto sarà sufficiente chiamare TrySetWallpaperImageAsync.
Le due chiamate hanno la particolarità di ritornare un valore booleano che indica se l'immagine passata in ingresso è stata sostituita oppure no: sono infatti presenti determinati constraint che dipendono dal device (alcuni sono headless e non hanno il Desktop), oppure di dimensioni fisiche dell'immagine stessa (2MB è il massimo consentito su mobile). Per entrambe le personalizzazioni, però, è bene fare in modo che i nomi delle immagini da impostare siano sempre diversi, altrimenti se il nome della nuova immagine è identico alla precedente già impostata (anche se fisicamente sono differenti), non verrà sostituita.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: i bottoni
Triggerare una pipeline su un altro repository di Azure DevOps
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Usare le collection expression per inizializzare una lista di oggetti in C#
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Effettuare il refresh dei dati di una QuickGrid di Blazor
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Utilizzare Tailwind CSS all'interno di React: primi componenti
Utilizzare Tailwind CSS all'interno di React: installazione
Utilizzare i primary constructor di C# per inizializzare le proprietà
I più letti di oggi
- ora è la volta di #azure. http://aspitalia.com/build-win8 #BldWin
- Implementare il pattern Dispose del .NET Framework
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare la cancellazione logica in #azure Container Registry https://aspit.co/ccy di @CristianCivera
- Centrare elementi in HTML tramite CSS
- Annunciato #PowerBI Embedded e disponibile in preview a partire da oggi! https://aspit.co/build2016 #build2016
- con il code inspector si potrà vedere il codice server associato all'HTML prodotto, ... http://aspitalia.com/build-win8 #BldWin
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!