2017-05-26 26 views
0

我正在處理一些Win2D效果,我很難找到一種合適的方法使我的UI內容足夠黑暗,以便它上面的文本很容易閱讀。僅當Win2D的效果不夠時纔會使內容變暗?

現在這是我的代碼的一部分:

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 } 
}; 

所以我混我用一個統一的黑色內容(源1),這將有效地使整個事情更暗。我雖然一個問題:

  • 這使得暗內容太暗,輕內容不夠

我聽說,這是可以使用BlendEffect設置爲BlendEffectMode.Exclusion的模式是暗解決這個問題,但我不知道如何正確設置。我嘗試過使用此效果將我的第一個效果與統一的黑色結合起來,但結果中沒有任何變化。

所以我的問題是:

其中Win2D效果(不一定排除混合,如果我們在這裏不會是正確的選擇),我可以申請,以確保我的內容總是比規定的閾暗(如此足夠黑暗),而不會使內容幾乎變黑?

感謝您的幫助!

回答

0

我發現使用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  
}; 
相關問題