La charm dei Settings è un importante punto di integrazione tra il sistema operativo e le Windows Store app perchè permette all'utente di raggiungere le impostazioni di ciascuna app con la stessa modalità, con una user experience omogenea e semplice.
In app WinRT realizzate con PRISM l'integrazione con la charm è già predisposta nella classe MvvmAppBase, la classe base dell'entry point App. In essa, nel metodo di ingresso InitializeFrameAsync ci si registra all'evento CommandsRequested appunto della charm:
SettingsPane.GetForCurrentView().CommandsRequested += OnCommandsRequested;
Il metodo gestore dell'evento fa i controlli del caso e richiama il metodo virtual GetSettingsCommands, metodo che deve restituire la collezione di SettingsCommand che vogliamo mostrare nel panel.
Di questo metodo possiamo fare l'override nella nostra classe App e inserire i SettingsCommand di cui abbiamo bisogno.
protected override IList<SettingsCommand> GetSettingsCommands() { return new List<SettingsCommand>() { new SettingsCommand(Guid.NewGuid().ToString(), "PrivacyPolicy (esempio)", async (c) => await Launcher.LaunchUriAsync(new Uri("https://www.winrtitalia.com"))) }; }
Nello snipped di esempio possiamo vedere un SettingsCommand che naviga ad una pagina di un sito web, come potrebbe essere la pagina che descrive le policy di gestione dei dati personali.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Azure Cosmos DB con i vettori
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Disabilitare automaticamente un workflow di GitHub (parte 2)
Usare lo spread operator con i collection initializer in C#
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Le novità di Angular: i miglioramenti alla CLI
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Proteggere le risorse Azure con private link e private endpoints
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Sostituire la GitHub Action di login su private registry
Miglioramenti nelle performance di Angular 16
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione