我对以下UWP API的工作方式有疑问:BrightnessOverride.IsSupportedChanged。当前这是我的设置:
我遇到的问题是,当我启动我的应用程序,然后从扩展坞中删除笔记本电脑时,未调用BrightnessOverride.IsSupportedChanged。如果我尝试获得IsSupported,那仍然是事实。我必须重新启动我的应用程序才能使其再次返回true。如果我从对接模式切换到笔记本电脑模式,也会发生同样的事情,IsSupported将保持为false,并且永远不会调用该事件。
我感觉在更换设备时,我可能需要再次调用GetForCurrentView()才能覆盖新视图,但是如果不调用事件该怎么办?
此处的文档未提供任何示例: https://docs.microsoft.com/en-us/uwp/api/windows.graphics.display.brightnessoverride.issupportedchanged
为重现此问题,我设置了一个简单的UWP测试应用程序,并将其添加到MainPage构造函数中:
b = BrightnessOverride.GetForCurrentView();
b.IsSupportedChanged += B_IsSupportedChanged;
回调:
private void B_IsSupportedChanged(BrightnessOverride sender, object args)
{
TextBlock1.Text = "Is changed";
}
然后在按钮单击功能中,打印出IsSupported值。
答案 0 :(得分:1)
感觉就像在更换设备时一样,我可能需要再次调用GetForCurrentView()才能覆盖新视图,但是如果未调用事件该怎么办?
为获得乐趣,您可以使用ProjectionDisplayAvailableChanged
事件来检测监视器已更改。当投影仪或其他辅助显示器变为可用或不可用时,就会发生这种情况。
ProjectionManager.ProjectionDisplayAvailableChanged += ProjectionManager_ProjectionDisplayAvailableChanged;
private void ProjectionManager_ProjectionDisplayAvailableChanged(object sender, object e)
{
//call GetForCurrentView method again
}