我发现:
BrightnessOverride bo = BrightnessOverride.GetDefaultForSystem();
bo.BrightnessLevel();
可能与亮度读取有关。但是当我运行代码时,出现异常:“访问被拒绝”。 API文档说它需要系统管理能力。我尝试创建一个 Package.appxmanifest 文件并在其中写入以下代码。但 Visual Studio 警告说,系统管理不允许对其进行争论。
有人知道为什么吗?或者其他获取显示亮度的建议?谢谢。
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">
<Identity Name=""
Version=""
Publisher="" />
<Properties>
<DisplayName></DisplayName>
<PublisherDisplayName></PublisherDisplayName>
<Logo></Logo>
</Properties>
<Prerequisites>
<OSMinVersion></OSMinVersion>
<OSMaxVersionTested></OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="" />
</Resources>
<Capabilities>
<Capability Name="systemManagement"/>
</Capabilities>
<Applications>
<Application Id="" StartPage="">
<VisualElements DisplayName="" Description=""
Logo="" SmallLogo=""
ForegroundText="" BackgroundColor="">
<SplashScreen Image="" />
</VisualElements>
</Application>
</Applications>
</Package>
最佳答案
用户(而不是应用程序)可以调整显示屏的亮度。自动调节亮度是系统的任务。哦,虽然不是一个强有力的理由,但请记住 UWP 可以在没有显示器的设备上运行。
因此,UWP
不提供此功能(获取显示器的当前亮度读数)。
至于为什么BrightnessOverride
需要systemManagement能力,我不太明白。毕竟,这种覆盖是针对每个应用程序的,意味着只有应用程序本身受到影响。
编辑:
正如 Raymond 在评论中指出的那样,该 API 可以控制每个应用程序的亮度以及系统亮度。
设置显示亮度是基本的系统管理,因此需要声明该功能。
关于uwp - 哪个API可以获取显示屏亮度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46482166/