【发布时间】:2011-01-19 14:46:29
【问题描述】:
我想填充一个矩形(即三角形)的左下半部分:
使用 LinearGradient,从颜色变为透明:
填充半个矩形:
我知道点 (x,y) 和矩形的大小。
如果我尝试使用LinearGradientBrush 来执行我的线性渐变:
brush = new LinearGradientBrush(
MakePoint(0, y), //bottom left corner
MakePoint(x, 0), //upper right corner
MakeColor(255, c), //fully opaque color
MakeColor(0, c)); //fully transparent color
graphics.FillRectangle(brush, MakeRect(0, 0, w, h));
线性渐变画笔填充整个矩形,如果它继续用最终(透明)颜色填充矩形的其余部分就可以了;但相反,它环绕:
我有我喜欢的LinearGradientBrush,我只想FillTriangle 或FillPolygon,而不是FillRectangle。除了没有 FillTriangle 或 FillPolygon,只有 FillRectangle 和 FillEllipse。
另见
【问题讨论】:
-
您使用的是什么版本的 .NET?我肯定在图形对象中看到了一个 FillPolygon 方法。 msdn.microsoft.com/en-us/library/89sks199.aspx
-
你知道什么,有一个。我发誓我只能找到
FillRectangle和FillEllipse。 (msdn.microsoft.com/en-us/library/ms535958(v=VS.85).aspx) 虽然我没有使用 .NET,但这是 GDI+。改写为答案,我会接受。 -
+1 我有同样的问题,我在谷歌上找到了这个。所以 +1,我们这些白痴必须团结一致!
标签: gdi+ linear-gradients