これは私を狂わせるようなものです。ボタンにDropShadowEffect
を追加します。 IDEでは次のようになります:
2番目のボタンは、DropShadowEffect
のない参照用です。ご覧のとおり、次に違いはありません。次に、プロジェクトをビルドすると、実行すると次のようになります。
この変化の原因は何ですか? 2つのボタンのXAMLは次のとおりです。
<Button Name="clearButton" Content="Clear" Click="clearButton_Click" Margin="5,0,5,0" MaxWidth="80" MinHeight="40"
TextOptions.TextFormattingMode="Display">
<Button.Effect>
<DropShadowEffect BlurRadius="5" ShadowDepth="3" />
</Button.Effect>
</Button>
<Button Content="Clear" Margin="5,5,5,0" MaxWidth="80" MinHeight="40" TextOptions.TextFormattingMode="Display" />
編集:@gretroを使用すると見栄えが良くなりますが、それでも正しくありません:
しかし、もう一度IDEで問題ないように見えます:
ボタン全体がクロスピクセル境界でレンダリングされています。 1ポイントの境界線が実際に複数のピクセルにまたがっており、ぼやけた効果が生じていることに注意してください。
親または祖先要素にUseLayoutRounding="True"
を設定してみてください。ツリーの上位にあるほど良いです(ビューのルートビジュアルが理想的です)。 SnapsToDevicePixels="True"
を試すこともできます。
添付されたプロパティを削除しますTextOptions.TextFormattingMode="Display"
。これがボタンがぼやける原因です。
<Button Grid.Row="25" Grid.Column="0" Content="Clear">
<Button.Effect>
<DropShadowEffect BlurRadius="5" ShadowDepth="3" />
</Button.Effect>
</Button>
このXAMLは、ボタンに非常にクリアなテキストをレンダリングし、シャドウ効果を提供します。