25

親要素に a を追加するDropShadowEffectと、子要素のテキストがぼやけます。なんで?

<Grid>
    <Grid.Effect>
        <DropShadowEffect />
    </Grid.Effect>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition />
    </Grid.RowDefinitions>
    <TextBlock Background="White">Test</TextBlock>
</Grid>

アップデート:

影付き

ここに画像の説明を入力

影なし

ここに画像の説明を入力

4

3 に答える 3

49

テキストがぼやけている理由は、効果によって要素とすべてのサブ要素が最初にビットマップにレンダリングされるためです。これは、サブピクセル レンダリング (ClearType) を実行できないため、テキストの品質が低下することを意味します。

ビジュアル ツリーの一部のみに効果を適用することで、これを回避できます。テキストを含まない部分。

あなたの場合、おそらく次のようなものが必要です:

<Grid>
    <Border>
        <Border.Effect>
            <DropShadowEffect />
        </Border.Effect>
    </Border>
    <TextBlock Background="White">Test</TextBlock>
</Grid>
于 2011-08-04T06:38:45.453 に答える
24

サブピクセルに問題がある可能性があります。

UseLayoutRounding = "True"グリッドに追加してみてください。

于 2013-02-20T01:21:21.083 に答える
3

WPF Blurry fonts problem - SolutionsTextOptions.TextFormattingMode="Display"に示すように、TextBlock に追加してみてください。 この効果は、たとえば、グリッドをピクセルの一部程度に移動することによって、何らかの形で「ぼやけ」を増加させる可能性があります。

于 2011-06-22T08:02:02.880 に答える