gpt4 book ai didi

.net - GDI + .NET : LinearGradientBrush wider than 202 pixels causes color wrap-around

转载 作者:行者123 更新时间:2023-12-04 13:53:55 26 4
gpt4 key购买 nike

如果我使用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在垂直方向上发生:

202像素:

203像素:

最佳答案

在FillRectangle()调用之前添加以下语句:

 e.Graphics.PixelOffsetMode = PixelOffsetMode.Half;

这样可以避免由于浮点舍入错误而产生的一对一问题。

关于.net - GDI + .NET : LinearGradientBrush wider than 202 pixels causes color wrap-around,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com