【发布时间】:2011-11-04 20:59:16
【问题描述】:
如果我用LinearGradientBrush 绘制一个宽度超过 202 像素的矩形,我会在左侧看到一条彩色条纹:
给出 202px 宽矩形的代码:
private void MainForm_Paint(object sender, PaintEventArgs e)
{
Rectangle r = new Rectangle(50, 50, 202, 50);
Color color1 = Color.FromArgb(unchecked((int)0xFF00024d));
Color color2 = Color.FromArgb(unchecked((int)0xFFd6a20f));
Brush b = new LinearGradientBrush(r, color1, color2, LinearGradientMode.Horizontal);
e.Graphics.FillRectangle(b, r);
}
我得到一个正确绘制的矩形:
但如果我将矩形更改为 203 像素宽:
Rectangle r = new Rectangle(50, 50, 203, 50);
矩形在左侧有一个彩色边缘或环绕:
它也发生在垂直方向LinearGradientMode.Vertical:
202px:
203px:
【问题讨论】:
-
这里也可以重现。看起来像一个错误。
-
ILSpy 只告诉我所有有趣的事情似乎都发生在 gdiplus.dll 中。
-
这是为了提醒您接受您满意的答案。您对这个网站了如指掌,所以这可能漏掉了。
标签: .net winforms graphics gdi+