Does anybody know StartOverride method logic? From documentation:
The request to start overriding does not mean that the screen brightness level always changes to match the specified override brightness level. It's still up to the system to decide whether or not to honor this override request.
I've wrote simple method to debug brightness changes:
protected override void ApplyBrightness(double brightness)
{
var brightnessOverride = BrightnessOverride.GetForCurrentView();
Debug.WriteLine($"Try to change brightness from {brightnessOverride.BrightnessLevel} to {brightness}");
void overrideActiveChangedHandler(BrightnessOverride sender, object e)
{
sender.IsOverrideActiveChanged -= overrideActiveChangedHandler;
Debug.WriteLine($"BrightnessOverride IsOverrideActive changed to {sender.IsOverrideActive}");
}
void brightnessLevelChangedHandler(BrightnessOverride sender, object e)
{
sender.BrightnessLevelChanged -= brightnessLevelChangedHandler;
Debug.WriteLine($"BrightnessOverride BrightnessLevel changed to {sender.BrightnessLevel}");
}
brightnessOverride.IsOverrideActiveChanged += overrideActiveChangedHandler;
brightnessOverride.BrightnessLevelChanged += brightnessLevelChangedHandler;
brightnessOverride.SetBrightnessLevel(brightness, DisplayBrightnessOverrideOptions.None);
brightnessOverride.StartOverride();
}
And get following results:
Try to change brightness from 0.83 to 0.23
BrightnessOverride IsOverrideActive changed to True
BrightnessOverride BrightnessLevel changed to 0.23
Try to change brightness from 0.23 to 0.53
BrightnessOverride IsOverrideActive changed to True
BrightnessOverride BrightnessLevel changed to 0.53
Try to change brightness from 0.53 to 0.14
Try to change brightness from 0.53 to 0.25
Try to change brightness from 0.53 to 0.7
BrightnessOverride IsOverrideActive changed to True
BrightnessOverride BrightnessLevel changed to 0.7
From this test I can see that for the first brightness change it is possible to decrease brightness (0.83 -> 0.23), but after it brightness can be only increased (0.23 -> 0.53, 0.53 -> 0.7). Subsequent attempts to decrease it are failed: 0.53 -> 0.14, 0.53 -> 0.25
Does anybody have explanation to such odd behavior? Maybe I'm missing something? Is there 100% robust solution to control application brightness?
My system: Windows 10 Pro, version 1709, OS build 16299.125. Application target and min versions are Windows 10 Creators Update (10.0; Build 15063)