2
我有一個自定義模板,我想以某種方式將ContentPresenter
(想象成位圖)的輸出,現在從該位圖剝去RGB(因此只保留alpha通道),然後設置每個像素上的RGB爲白色(保留Alpha通道)。那麼你會怎麼做?將模板內容轉換爲顏色疊加
我有一個自定義模板,我想以某種方式將ContentPresenter
(想象成位圖)的輸出,現在從該位圖剝去RGB(因此只保留alpha通道),然後設置每個像素上的RGB爲白色(保留Alpha通道)。那麼你會怎麼做?將模板內容轉換爲顏色疊加
如果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'代替`color.a`表達式,但我總是得到的僅僅是一個大的白色矩形......它似乎完全忽略了alpha通道。 – Paya 2011-02-12 19:49:53