对我来说,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功能,也无法读取(仅读取)系统亮度级别。我得到了一个错误,就像其他一些堆栈溢出成员一样。
我用C#做了同样的测试,当然也有同样的问题。
由于一些堆栈溢出成员在几个月前成功地获得了正确的亮度值(UWP: BrightnessOverride StartOverride logic),显然,上一版本的视窗和/或VS (2017)存在问题。
发布于 2018-08-02 10:37:21
我们已经在Github上提交了一个问题,你可以在这里查看:
https://github.com/MicrosoftDocs/winrt-api/issues/516
如果你想从系统中获得当前的亮度,你需要一个带有桌面应用程序的desktop bridge来获取当前的亮度(而不是当前的覆盖),这里使用win32方法:
https://stackoverflow.com/questions/51541509
复制相似问题