按钮上的WPF Dropshadow会导致文本模糊

Xap*_*ann 19 c# wpf dropshadow

这有点让我疯狂.添加DropShadowEffect到按钮.在IDE中它看起来像这样:

在此输入图像描述

第二个按钮仅供参考DropShadowEffect.你可以看到下一个没有区别.然后我构建项目,当它运行时它看起来像这样:

在此输入图像描述

是什么导致了这种变化?这是两个按钮的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" />
Run Code Online (Sandbox Code Playgroud)

编辑:采取@gretro确实让它看起来更好,但它仍然是不对的:

在此输入图像描述

然而在IDE中再次看起来很好:

在此输入图像描述

Mik*_*bel 33

您的整个按钮呈现在交叉像素边界上.请注意1点边框实际上跨越多个像素,从而导致模糊效果.

尝试设置UseLayoutRounding="True"父元素或祖先元素.树的越远越好(你的视图的根视觉是理想的).你也可以试试SnapsToDevicePixels="True".

  • 虽然你的解决方案没有帮助我,但我发现了这个:http://www.cplotts.com/2009/02/25/gpu-effects-blurry-text/ (2认同)
  • 如果仍然无法正常工作,请将'UseLayoutRounding`向上移动'等级'.例如.我在`DataGrid`中有一个模糊图像,并将`UseLayoutRounding`从图像移动到datagrid.现在很清楚了:-) (2认同)