【问题标题】:Why is GDI+ linear gradient wrapping?为什么 GDI+ 线性渐变环绕?
【发布时间】:2015-10-30 07:47:45
【问题描述】:

我正在使用Gdiplus::LinearGradientBrush 为我的文档绘制阴影效果。它效果很好,但在我的文档的右侧,效果有时会在绘图区域的一部分中环绕。当我水平滚动时,这只发生在一定范围内。对于大部分滚动范围,一切正常。对于文档的另一面,一切正常。当我在受影响的范围内滚动时,我可以看到渐变环绕点卡住了。我可以滚动文档/背景的其余部分,但渐变环绕点卡在屏幕的某个像素上。

graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetModeHalf); //Gdiplus::Graphics
Gdiplus::Rect shadow(rect.X + rect.Width, rect.Y + cornerRadius, shadowWidth, vSideLength);
Gdiplus::LinearGradientBrush brush(shadow, alpha1, alpha2, 180.f);
brush.SetBlendBellShape(1);
graphics.FillRectangle(&brush, shadow);

什么会导致这种效果?如果需要更好地描述问题,我可以发布图片。

编辑:图像here。渐变包裹点以某种方式固定在我窗口中的一个像素上,并且包裹点在我滚动时不会移动。

【问题讨论】:

  • 图片会很好

标签: gdi+


【解决方案1】:

这是由我的 AMD 6xxx 系列显卡的驱动程序错误引起的。 Windows VGA 驱动程序没有出现此错误。截至 10/2015 的当前 AMD 视频驱动程序仍然存在该错误。解决方法是使用 16 倍的宽度渐变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-22
    • 2013-01-08
    • 1970-01-01
    • 2011-09-23
    • 2020-11-06
    • 2012-04-29
    • 1970-01-01
    • 2019-06-30
    相关资源
    最近更新 更多