首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止/控制LinearGradientBrush包装?

如何防止/控制LinearGradientBrush包装?
EN

Stack Overflow用户
提问于 2012-02-03 01:49:45
回答 1查看 316关注 0票数 1

我的LinearGradientBrush有问题。我不知道是时候到了(凌晨1点43分),还是因为其他原因而变得愚蠢,但这真的让我心烦。

我有以下代码:

代码语言:javascript
复制
using (LinearGradientBrush lgb = new LinearGradientBrush(
        this.brightnessRectangle,this.fullcolour,Color.Black,LinearGradientMode.Vertical))
{
    gradientImage = new Bitmap(50, 200, PixelFormat.Format32bppArgb);

    using (Graphics newGraphics = Graphics.FromImage(gradientImage))
    {
        newGraphics.FillRectangle(lgb, new Rectangle(0, 0, 50, 200));
    }
    gradientImage.Save("test.png", ImageFormat.Png);
}

然而,test.png看起来是这样的:

我相信你会知道,这不是我想要的效果。它看起来有点像它已经开始很远的向下和包裹回来,但顶部和底部的异常是不同的大小。

有人以前见过这个吗?这是一个容易解决的问题吗?

一些注意事项:

  • 谷歌建议我可能有这个问题,鲍勃鲍威尔建议,可以通过使填充比填充区域稍大来修复。这不管用。
  • MSDN似乎在谈论一个与我所拥有的不同的LinearGradientBrush。我的没有StartPointEndPoint属性。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-03 02:00:01

尝试确保brightnessRectangle等于(0,0,50,200)。

换句话说,确保您的LinearGradientBrush矩形和FillRectangle是相同的:

代码语言:javascript
复制
Rectangle r = new Rectangle(0, 0, 50, 200);
using (LinearGradientBrush lgb = new LinearGradientBrush(
        r ,this.fullcolour,Color.Black,LinearGradientMode.Vertical)) {
  gradientImage = new Bitmap(r.Width, r.Height, PixelFormat.Format32bppArgb);

  using (Graphics newGraphics = Graphics.FromImage(gradientImage)) {
    newGraphics.FillRectangle(lgb, r);
  }
  gradientImage.Save("test.png", ImageFormat.Png);
}

是的,好好睡一觉。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9122706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档