我有这段代码,可以将一些混合添加到Windows窗体中:
public partial class Form1 : Form
{
protected override void OnPaintBackground(PaintEventArgs e)
{
using (LinearGradientBrush brush = new LinearGradientBrush(this.ClientRectangle,
Color.White,
Color.Black,
LinearGradientMode.Vertical))
{
e.Graphics.FillRectangle(brush, this.ClientRectangle);
}
}
}
结果如下:
默认情况下,两种颜色混合的“峰值”正好位于框的中间。我要调整代码,使混合的“峰值”朝顶部大约3/4发生。是否可以更改两种颜色开始融合的点?
先感谢您。
最佳答案
您可以将笔刷的InterpolationColors
属性设置为合适的ColorBlend
,例如:
using (var brush = new LinearGradientBrush(this.ClientRectangle,
Color.Transparent, Color.Transparent, LinearGradientMode.Vertical))
{
var blend = new ColorBlend();
blend.Positions = new[] { 0, 3 / 4f, 1 };
blend.Colors = new[] { Color.White, Color.Black, Color.Black };
brush.InterpolationColors = blend;
e.Graphics.FillRectangle(brush, this.ClientRectangle);
}
或例如另一种混合:
blend.Positions = new[] { 0, 1 / 2f, 1 };
blend.Colors = new[] { Color.White, Color.Gray, Color.Black };
关于c# - C#LinearGradientBrush。如何更改两种颜色混合的点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40411863/