using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Text; using System.Windows.Forms; namespace Example { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// /// Creates the Point[] list for polygon creation. /// /// private Point[] IconPathPoint() { //all coords are for 32x32 dim playfield. int mtr = 10; Point[] pathPoint = { new Point(17 * mtr, 15 * mtr), new Point(20 * mtr, 12 * mtr), new Point(21 * mtr, 12 * mtr), new Point(24 * mtr, 15 * mtr), new Point(24 * mtr, 18 * mtr), new Point(21 * mtr, 21 * mtr), new Point(20 * mtr, 21 * mtr), new Point(13 * mtr, 14 * mtr), new Point(12 * mtr, 14 * mtr), new Point(10 * mtr, 16 * mtr), new Point(10 * mtr, 17 * mtr), new Point(12 * mtr, 19 * mtr), new Point(13 * mtr, 19 * mtr), new Point(15 * mtr, 17 * mtr), new Point(16 * mtr, 18 * mtr), new Point(13 * mtr, 21 * mtr), new Point(12 * mtr, 21 * mtr), new Point(9 * mtr, 18 * mtr), new Point(9 * mtr, 15 * mtr), new Point(12 * mtr, 12 * mtr), new Point(13 * mtr, 12 * mtr), new Point(20 * mtr, 19 * mtr), new Point(21 * mtr, 19 * mtr), new Point(23 * mtr, 17 * mtr), new Point(23 * mtr, 16 * mtr), new Point(21 * mtr, 14 * mtr), new Point(20 * mtr, 14 * mtr), new Point(18 * mtr, 16 * mtr), new Point(17 * mtr, 15 * mtr), }; return pathPoint; } /// /// Creates the Path types array. /// /// private Byte[] IconPathType() { byte[] pathType = { (byte)PathPointType.Start, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, }; return pathType; } /// /// Creates the Color list for the PatGradientBrush. /// /// private Color[] IconColorList() { Color[] colorList = new Color[7]; colorList[0] = Color.Red; colorList[1] = Color.Blue; colorList[2] = Color.Green; colorList[3] = Color.Yellow; colorList[4] = Color.Green; colorList[5] = Color.Blue; colorList[6] = Color.Red; return colorList; } private void button1_Click(object sender, EventArgs e) { int xyDim = 250; Image iconImage = new Bitmap(xyDim, xyDim); Graphics iconGraphics = Graphics.FromImage(iconImage); GraphicsPath iconPathGraphics = new GraphicsPath(IconPathPoint(), IconPathType()); PathGradientBrush iconBrush = new PathGradientBrush(iconPathGraphics); iconBrush.WrapMode = WrapMode.Clamp; iconBrush.SurroundColors = IconColorList(); iconGraphics.FillRectangle(new SolidBrush(Color.Transparent), 0, 0, xyDim, xyDim); iconGraphics.FillPath(iconBrush, iconPathGraphics); pictureBox1.Image = iconImage; } } }