同线性渐变画刷相比,路径渐变画刷的最大特点在于:线性渐变画刷的渐变方向比较单一(水平,垂直,固定角度),而路径渐变画刷的渐变方向是从路径中央到路径边缘,是一种呈发散状的渐变,所以在使用路径渐变画刷填充目标区域前,处理需要指定对象外,还要指定路径的中心点颜色以及路径边界的颜色。
下面为路径渐变画刷的基本使用,构建一个中心点为红色的五角星:
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.Clear(Color.White);
//构造五星的10个边的端点坐标
Point[] points =
{
new Point(75,0),new Point(100,50),
new Point(150,50),new Point(112,75),
new Point(150,150),new Point(75,100),
new Point(0,150),new Point(37,75),
new Point(0,50),new Point(50,50),
new Point(75,0)
};
//创建路径
GraphicsPath path = new GraphicsPath();
//在路径中添加直线
path.AddLines(points);
//创建路径渐变画刷
PathGradientBrush pathBrush = new PathGradientBrush(path);
//设置中心点颜色
pathBrush.CenterColor = Color.Red;
//设置每个端点的色彩
Color[] colors =
{
Color.Black,Color.Green,
Color.Blue,Color.White,
Color.Black,Color.Green,
Color.Blue,Color.White,
Color.Black,Color.Green
};
//设置路径渐变画刷的边缘色
pathBrush.SurroundColors = colors;
g.TranslateTransform(100,100);
g.FillPath(pathBrush,path);
//显示释放资源
path.Dispose();
pathBrush.Dispose();
}
效果图: