2011-02-12 43 views
2

我有一個自定義模板,我想以某種方式將ContentPresenter(想象成位圖)的輸出,現在從該位圖剝去RGB(因此只保留alpha通道),然後設置每個像素上的RGB爲白色(保留Alpha通道)。那麼你會怎麼做?將模板內容轉換爲顏色疊加

回答

2

如果ContentPresenter需要是「實時」效果,我會使用PixelShader +效果。

請參閱Shazzam tool輕鬆創建特效和PixelShader的來源。

sampler2D Texture1Sampler : register(S0); 

//----------------- 
// Pixel Shader 
//----------------- 

float4 main(float2 uv : TEXCOORD) : COLOR 
{ 
    float4 color = tex2D(Texture1Sampler, uv); 
    float4 alphaMaskColor = float4(color.a,color.a,color.a,color.a); //Pre-multiplied Alpha in WPF 
    return alphaMaskColor; 
} 
+0

我試過了代碼,它不起作用。我甚至嘗試用'0'代替`color.a`表達式,但我總是得到的僅僅是一個大的白色矩形......它似乎完全忽略了alpha通道。 – Paya 2011-02-12 19:49:53