我可以用一种方法在c#中生成非线性渐变画笔吗?
澄清:我没有寻找可以应用于非线性路径的渐变。相反,我正在寻找两种颜色之间的渐变,这两种颜色之间以非线性的方式逐渐消失,即渐变的速度在渐变开始时更快,随着画笔接近结束点而减慢。
使用gdi +?
在c#中是否可以实现这一点?答案 0 :(得分:7)
是的,设置画笔的混合。
LinearGradientBrush blendBrush = new LinearGradientBrush(Rectangle, Color.Red, Color.White, 360f);
Blend blend = new Blend();
blend .Factors = new float[] { 1.0f, 0.9f, 0.8f, 0.7f, 0.6f, 0.5f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f };
blend .Positions = new float[] { 0, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f };
blendBrush.Blend = blend ;
此示例将开始淡出,然后返回上一个颜色。所以从中心效果中填补。
答案 1 :(得分:2)
使用LinearGradientBrush的Blend属性 -
http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.blend(VS.80).aspx