Проблема при получении BrightnessLevel в приложениях UWP

Что-то странное для меня с BrightnessOverride. Я могу изменить уровень яркости и затем получить его новое значение, но, если я не изменю его, возвращается значение, равное нулю.

Код VB:

Private bo As BrightnessOverride
bo = BrightnessOverride.GetForCurrentView()
Debug.WriteLine(bo.BrightnessLevel) ' I get 0
bo.StartOverride()
Debug.WriteLine(bo.BrightnessLevel) ' I get 0
bo.SetBrightnessLevel(0.25, DisplayBrightnessOverrideOptions.None)
Debug.WriteLine(bo.BrightnessLevel) ' I get 0.25

Более того, невозможно прочитать (только прочитать) уровень яркости системы, даже если я добавлю возможность SystemManagement. Я получаю сообщение об ошибке, как и некоторые другие члены stackru.

Я сделал тот же тест с C#, и, конечно, та же проблема.

Поскольку некоторые члены stackru успешно получили правильное значение яркости несколько месяцев назад ( логика UWP: BrightnessOverride StartOverride), определенно кажется, что существует проблема с последней версией Windows и / или VS (2017).

1 ответ

Мы подали заявку на Github, вы можете проверить ее здесь:

https://github.com/MicrosoftDocs/winrt-api/issues/516

Если вы хотите получить текущую яркость из системы, вам понадобится настольный мост с настольным приложением для извлечения текущей яркости (в отличие от текущего переопределения) с использованием подхода win32:

https://docs.microsoft.com/en-us/windows/desktop/api/highlevelmonitorconfigurationapi/nf-highlevelmonitorconfigurationapi-getmonitorbrightness.

Другие вопросы по тегам