对于2的做法可以如下:
GraphicsPath path = new GraphicsPath();
Point[] ptPolygon = new Point[]{ new Point(0,0),
new Point( 50,50 ),
new Point( 60, 70 ),
new Point( 20, 40 ) };
path.AddPolygon( ptPolygon );
// Use the path to construct a brush.
PathGradientBrush pthGrBrush = new PathGradientBrush(path);
// Set the color at the center of the path to blue.
pthGrBrush.CenterColor = Color.FromArgb(255, 255, 255, 255);
// Set the color along the entire boundary
// of the path to aqua.
Color[] colors = {Color.FromArgb(0, 255, 255, 255)};
pthGrBrush.SurroundColors = colors;
Pen pen = new Pen( pthGrBrush, 4 );//Set pen width here
//Add write edges on polygon
g.DrawPolygon( pen,
ptPolygon );