【发布时间】:2015-03-13 04:44:11
【问题描述】:
我正在使用 LinearGradient 笔刷来填充该区域,并使用起点和终点 Color 创建了 linearGradient 笔刷。
Rectangle linearGradientregion= new Rectangl(20,-50,30,30);
LinearGradientBrush linearGradientBrush = new LinearGradientBrush(new PointF(20, -20), new PointF(50, -50), Color.Green, Color.Red);
Rectangle pathRegion= new Rectangl(-50,-25,50,50);
GraphicsPath path = new GraphicsPath();
path.AddRectangle(pathRegion);
graphics.FillPath(linearGradientBrush, path);
并且区域大小大于linearGradientBrush bounds area。
现在我想知道如何使用 linearGradientBrush 边界区域填充区域,仅使用 linearGradientBrush 和区域的剩余区域填充另一种颜色。
下图是预期输出。
http://i.stack.imgur.com/B4CHB.png
但我得到这样的结果
http://i.stack.imgur.com/Pxwiw.png
在第一张图片中,绿色填充的圆圈超出了线性渐变画笔的范围。
在第二张图片中,渐变画笔再次填充该区域。
我想在线性渐变画笔的终点停止渐变画笔填充,并用另一种颜色填充剩余区域。
提前致谢,
帕提
【问题讨论】:
-
每次我读到这个问题我都不太了解。你能张贴你想要的图片吗?另外:
Region是GDI+中的一个类,与GraphicsPath密切相关。我在您的代码中没有看到Region。如果您只是指某个区域,请不要称它为Region! -
Region 是表示区域的通用词,所以我可以在这里使用它。如果你有这个问题的答案,请与我分享。
-
Region是.Net/GDI+中的保留字,在这里使用它只会造成混乱。如果我能理解,我可能会回答你的问题。如果 Lc 的回答还不够,请考虑上传图片! -
现在请找到我的问题,并请提供您的宝贵想法来解决问题。
-
感谢您的图片。现在我明白你的意思了。 (一张图片往往胜过一千个字)看看两个例子..