在用LinearGradientBrush绘制由几种基础色构成的渐变色标时,每种基础色交
界处可能会出现某种颜色的线条,很影响美观与准确!上网查了下,有人说是抗锯
齿的问题???现通过下面方法解决:
我将每对基础色之间的渐变色通过LinearGradientBrush绘在缓冲图片上,然后
再将每组渐变色图片拼在一起......OK,小线条不见了。
示例代码如下:
//
fillRect为需要在色标上填充渐变色的矩形
// linearRect为构造的用于初始化LinearGradientBrush的渐变矩形
Rectangle linearRect = new Rectangle( 0 , 0 , fillRect.Width, fillRect.Height);
LinearGradientBrush gradient = new LinearGradientBrush(linearRect, startColor, endColor, LinearGradientMode.Vertical);
// 缓冲图片
Bitmap offscreen = new Bitmap(fillRect.Width, fillRect.Height);
Graphics ofg = Graphics.FromImage(offscreen);
ofg.FillRectangle(gradient, linearRect);
// 将缓冲图片帖到色标上
g.DrawImage(offscreen, fillRect.X, fillRect.Y);
// linearRect为构造的用于初始化LinearGradientBrush的渐变矩形
Rectangle linearRect = new Rectangle( 0 , 0 , fillRect.Width, fillRect.Height);
LinearGradientBrush gradient = new LinearGradientBrush(linearRect, startColor, endColor, LinearGradientMode.Vertical);
// 缓冲图片
Bitmap offscreen = new Bitmap(fillRect.Width, fillRect.Height);
Graphics ofg = Graphics.FromImage(offscreen);
ofg.FillRectangle(gradient, linearRect);
// 将缓冲图片帖到色标上
g.DrawImage(offscreen, fillRect.X, fillRect.Y);