簡體   English   中英

着色器中使用的WPF Textblock的大小無法調整

[英]Size of WPF Textblock used in a shader cannot be resized

我有一個要應用於WPF TextBlock的着色器。 但是,我的着色器似乎總是局限於與文本的邊框相同的紋理。 而且,結果是我無法訪問邊界框之外的像素(例如,添加大邊框或色彩效果)。 在應用着色器之前,我嘗試增加XAML或C#中的邊界框的所有操作均失敗。

此圖片顯示了對文本應用簡單的藍色覆蓋着色器的效果。 它顯示了着色器可以訪問的邊界框的范圍和像素。 因此,問題實際上是在調用着色器之前如何擴展文本邊界框? 希望有人解決過這個問題...

我在下面包括了簡單的着色器代碼:

sampler2D texSampler : register(S0);
float threshold : register (C0);
float4 txtColor : register (C1);

float4 main(float2 uv : TEXCOORD) : COLOR
{
    float4 color = tex2D(texSampler, uv);

    color.r = txtColor[0];
    color.g = txtColor[1];
    color.b = txtColor[2];

    return color;
}

示例文本和邊框

這是怎么回事-如果未為TextBlock指定背景,則wpf會在文本周圍放置一個緊密的邊框,而與為TextBlock指定的寬度和高度無關。 要解決此問題,只需將TextBlock的Background color設置為Transparent。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM