Mega Code Archive

 
Categories / C# / 2D Graphics
 

Drag and drop shape

using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; public class TryMouse : Form {   private Region region;    private int oldX = 0;   private int oldY = 0;   public TryMouse() {     Size = new Size(300,200);     BackColor = Color.White;     GraphicsPath p = new GraphicsPath();     p.AddPolygon(new Point[]{new Point(50,10), new Point(10,50), new Point(150,100)});     region = new Region(p);   }   protected override void OnPaint(PaintEventArgs e) {     Graphics g = e.Graphics;     g.FillRegion(Brushes.Red, region);     base.OnPaint(e);   }   protected override void OnMouseDown(MouseEventArgs e) {     if (region.GetBounds(CreateGraphics()).Contains(e.X, e.Y)){       oldX = e.X;       oldY = e.Y;     }     base.OnMouseDown(e);   }   protected override void OnMouseUp(MouseEventArgs e) {     region.Translate(e.X-oldX, e.Y-oldY);     oldX = e.X;     oldY = e.Y;     Invalidate();     base.OnMouseUp(e);   }   public static void Main() {     Application.Run(new TryMouse());   } }