我想用LinearGradientBrush填充矩形。使用一些矩形,我会得到一些奇怪的行为。例:
Rectangle rect = new Rectangle( 20, 20, 20, 34 );
LinearGradientMode mode = LinearGradientMode.Vertical;
Brush brush = new LinearGradientBrush( rect, Color.White, Color.Blue, mode );
e.Graphics.FillRectangle( brush, rect );
大多数矩形都能正常工作,但有些矩形(如上述矩形)会用第二种颜色(在这种情况下为蓝色)填充第一像素行。
见附图:
有任何想法吗?
最佳答案
使画笔高一个像素:
LinearGradientMode mode = LinearGradientMode.Vertical;
Rectangle BrushRect = rect;
BrushRect.Inflate(0, 1);
Brush brush = new LinearGradientBrush(BrushRect, Color.White, Color.Blue, mode);
关于c# - LinearGradientBrush的怪异行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5326473/