L'ultimo aggiornamento di Windows 10, il Creators Update, ha aggiunto una serie di nuove funzionalità molto richieste dagli sviluppatori: una di queste è relativa alla modifica della luminosità dello schermo.
Per cambiare la luminosità dello schermo è sufficiente richiedere il controllo al sistema e, una volta accertati che ci sia il supporto da parte dello schermo, impostare il nuovo livello di luminosita:
BrightnessOverride bo = BrightnessOverride.GetForCurrentView(); if (bo.IsSupported) { bo.SetBrightnessLevel(0.5, DisplayBrightnessOverrideOptions.None); bo.StartOverride(); }
In questo caso specifico il livello di luminosità è stato impostato al 50% della luminosità massima supportata dallo schermo, ma, eventualmente, è anche possibile sfruttare dei template di luminosità predefiniti dal sistema:
bo.SetBrightnessScenario(DisplayBrightnessScenario.IdleBrightness, DisplayBrightnessOverrideOptions.None);
In questo caso, invece, la luminosità verrà impostata al valore di default previsto dal sistema operativo, quindi intorno al 10%.
E' anche possibile registrarsi agli eventi BrightnessLevelChanged (per capire quando la luminosità è cambiata), IsSupportedChanged (quando un monitor con luminosità modificabile è stato aggiunto o rimosso) e IsOverrideActiveChanged (invocato quando il livello di luminosita corrisponde, o smette di corrispondere, con il livello previsto dal sistema).
Questo sistema può essere utilizzato, come mostrato qui sopra, solo in relazione all'applicazione corrente, mentre qualora fosse necessario impostare il livello di luminosità sull'intero sistema operativo (e quindi di mantenerla all'uscita dell'applicazione), bisognerà salvare il valore di cui si è fatto l'override:
await BrightnessOverride.SaveForSystemAsync(bo);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare alias per tipi generici e tuple in C#
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Cambiare la chiave di partizionamento di Azure Cosmos DB
Ordine e importanza per @layer in CSS
Utilizzare Tailwind CSS all'interno di React: primi componenti
Disabilitare automaticamente un workflow di GitHub (parte 2)
Evitare la script injection nelle GitHub Actions
Sfruttare al massimo i topic space di Event Grid MQTT
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Usare le collection expression per inizializzare una lista di oggetti in C#
Utilizzare i primary constructor di C# per inizializzare le proprietà