LinearGradientBrush神器解决方法?
时间:2020-03-06 14:29:56 来源:igfitidea点击:
.net(或者什至整个GDI +?)中的LinearGradientBrush似乎有一个严重的错误:有时,它会引入工件。 (请参见此处或者此处的本质,线性渐变的第一条线是在最终颜色中绘制的,即从白到黑的渐变将从黑线开始,然后从正确的白到黑渐变开始)
我想知道是否有人为此找到了可行的解决方法?这是一个非常烦人的错误:-(
这是工件的图片,请注意有2个LinearGradientBrushes:
替代文字http://img142.imageshack.us/img142/7711/gradientartifactmm6.jpg
解决方案
使用渐变笔刷时,我也注意到了这一点。我唯一有效的解决方法是始终创建渐变画笔矩形,在所有边缘上比要用其绘制的区域大1个像素。这样可以保护我们免受所有四个方面的困扰。不利的一面是,边缘使用的颜色比我们指定的颜色要小一些,但这比图形伪像问题要好!
我们可以在矩形上使用漂亮的Inflate(int i)方法来获取更大的版本。
至少在WPF中,我们可以尝试使用GradientStop来获得100%正确的色彩,即使在过度绘制时也是如此。