我正在处理一些Win2D效果,而且我很难找到一种方法让我的UI内容足够暗,以便上面的文字很容易阅读。
现在这是我的代码的一部分:
ArithmeticCompositeEffect composite = new ArithmeticCompositeEffect
{
MultiplyAmount = 0,
Source1Amount = 0.2f,
Source2Amount = 0.8f,
// The Source1 parameter will be assigned later on with the EffectFactory
Source1 = new CompositionEffectSourceParameter(nameof(myBackground)),
Source2 = new ColorSourceEffect { Color = Colors.Black }
};
所以我将我的内容(Source1)与均匀的黑色混合,这有效地使整个事物变得更暗。我有一个问题:
我听说可以使用BlendEffect
将模式设置为BlendEffectMode.Exclusion
来解决此问题,但我不知道如何正确设置它。我尝试使用此效果将我的第一个效果与均匀的黑色颜色结合起来,但结果没有任何变化。
所以我的问题是:
我可以申请哪种Win2D效果(不一定是排除混合,如果这不是正确的选择),以确保我的内容总是比给定的阈值(足够黑暗)更暗,而不会使内容与已经黑了几乎是黑色的?
感谢您的帮助!
答案 0 :(得分:0)
我发现使用LuminanceToAlphaEffect
Win2D效果可以解决这个问题,并将得到的地图覆盖在原始效果上(可能具有一定的强度,以使原始图像或多或少暗,具体取决于情况)。
一个例子是:
LuminanceToAlphaEffect alphaEffect = new LuminanceToAlphaEffect
{
Source = new CompositionEffectSourceParameter(nameof(myBackground))
};
ArithmeticCompositeEffect composite = new ArithmeticCompositeEffect
{
MultiplyAmount = 0,
Source1Amount = 1 - intensity, // Intensity is in the [0..1] range
Source2Amount = intensity,
// The Source1 parameter will be assigned later on with the EffectFactory
Source1 = new CompositionEffectSourceParameter(nameof(myBackground)),
Source2 = alphaEffect
};