2008-09-15 70 views
0

是否有一种方法可以沿着垂直于线的方向的方向变化的渐变绘制沿着弯曲路径的直线?我为我的图形使用GDI +框架。带渐变的多段线

回答

1

简单的答案是否定的。您可以创建一个GraphicsPath来描述您想绘制的内容,根据需要使用AddPoint/AddLine/AddBezier等来描述您想要绘制的复杂路径。绘制路径时,您可以提供一个可以类似于LinearGradientBrush或RadialGradientBrush的Brush。在绘图发生时,这些渐变画笔都不会对绘制的实际路径产生反应,因为这会改变方向。你必须为整个渐变区域指定角度等。

0

您可以使用的一种可能的方法是将Graphics对象的剪辑区域设置为仅限行的剪辑区域。然后在该线的极端上绘制线性梯度,例如

GraphicsPath gp = new GraphicsPath(); 

gp.AddArc(); // etc... 

graphics.SetClip(gp); 

graphics.FillRectangle(myLinearGradientBrush, gp.GetBounds()); 

上面的代码可能会给你你在找什么。