gObject= canvas.CreateGraphics(); dem Panel zuweisen.namespace _Graphics { public partial class Form1 : Form { Graphics gObject; Pen pen; Brush brush; public Form1() { InitializeComponent(); gObject = canvas.CreateGraphics(); } }
private void button1_Click(object sender, EventArgs e) { //Pen und Brush definieren pen = new Pen(Color.Red, 2); brush = new SolidBrush(Color.Blue); //Linie gObject.DrawLine(pen, 10, 10, 50, 20); //Rechteck gObject.DrawRectangle(pen, 10, 25, 150, 20); Rectangle rechteck = new Rectangle(10, 50, 100, 30); gObject.DrawRectangle(pen, rechteck); gObject.FillRectangle(brush, 10, 100, 200, 40); //Ellipse gObject.FillEllipse(brush, 10, 160, 50, 50); //Punkte und Polygon Point[] punkte = new Point[3]; punkte[0] = new Point(10, 250); punkte[1] = new Point(150, 250); punkte[2] = new Point(100, 300); gObject.DrawPolygon(pen, punkte); } private void button2_Click(object sender, EventArgs e) { //Löschen der gezeichneten Objekte gObject.Clear(Color.White); }
Das Verwenden des Graphics-Objekts mittels PictureBox hat den Vorteil, dass man die Grafik in ein Bitmap speichern sowie Farben von Pixeln auslesen kann:
public partial class Form1 : Form { //Image für Bitmap Image img; //Graphics für die PictureBox Graphics gObject; //Brush und Pen SolidBrush brush = new SolidBrush(Color.White); Pen pen = new Pen(Color.Black); public Form1() { InitializeComponent(); //neues Bitmap erstellen img = new Bitmap(pictureBox1.Width, pictureBox1.Height); //Bitmap der PictureBox zuweisen pictureBox1.Image = img; //Graphics-Objekt erstellen gObject = Graphics.FromImage(pictureBox1.Image); gObject.FillRectangle(brush,0, 0, pictureBox1.Width, pictureBox1.Height); } private void button1_Click(object sender, EventArgs e) { gObject.FillEllipse(brush, x, y, 20, 20); //Refresh ist nötig, damit das gezeichnete Objekt erscheint. pictureBox1.Refresh(); } //Auslesen von Farben, wenn sich die Maus über die PictureBox bewegt private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { Bitmap bmp = (Bitmap)pictureBox1.Image; // Bitmap bmp = (Bitmap)img; //ebenfalls möglich farbe = bmp.GetPixel(e.X, e.Y); // farbe=((Bitmap)img).GetPixel(e.X, e.Y); //ebenfalls möglich pictureBox2.BackColor = farbe; label1.Text = farbe.ToString(); }