LinearGradientBrush工件解决方法?

Mic*_*tum 9 c# gdi+

.net中的LinearGradientBrush(甚至是GDI +中的整体?)似乎有一个严重的错误:有时,它会引入工件.(参见此处此处 - 基本上,线性渐变的第一行是在endcolor中绘制的,即从白色到黑色的渐变将以黑色线条开始,然后使用正确的白色到黑色渐变)

我想知道是否有人为此找到了解决方法?这是一个非常讨厌的bug :-(

这是Artifacts的图片,请注意有2个LinearGradientBrushes:

替代文字http://img142.imageshack.us/img142/7711/gradientartifactmm6.jpg

Phi*_*ght 9

使用渐变画笔时我也注意到了这一点.我唯一有效的解决方法是始终创建渐变画笔矩形,在所有边缘上比要用它绘制的区域大1个像素.这可以保护您免受所有四个边缘的问题.缺点是边缘处使用的颜色与您指定的颜色相差无几,但这比绘图工件问题更好!


Nic*_*ick 5

您可以在矩形上使用漂亮的Inflate(int i)方法来获得更大的版本.