tutorial form example drawrectangle drawline c# drawing

form - paint en c#



Dibujando cĂ­rculos con System.Drawing (8)

Si desea dibujar un círculo en el botón, entonces este código podría usarse en su totalidad. de lo contrario, si desea dibujar un círculo en otro control, simplemente cambie el nombre de control y también el evento. Como aquí se llama botón de evento. Si desea dibujar este círculo en el cuadro de grupo, llame al evento Groupbox. Saludos

public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.button1.Location = new Point(108, 12); // this.Paint += new PaintEventHandler(Form1_Paint); this.button1.Paint += new PaintEventHandler(button1_Paint); } void button1_Paint(object sender, PaintEventArgs e) { Graphics g = this.button1.CreateGraphics(); Pen pen = new Pen(Color.Red); g.DrawEllipse(pen, 10, 10, 20, 20); } }

Tengo este código que dibuja un rectángulo (estoy intentando rehacer la pintura de MS)

case "Rectangle": if (tempDraw != null) { tempDraw = (Bitmap)snapshot.Clone(); Graphics g = Graphics.FromImage(tempDraw); Pen myPen = new Pen(foreColor, lineWidth); g.DrawRectangle(myPen, x1, y1, x2-x1, y2-y1); myPen.Dispose(); e.Graphics.DrawImageUnscaled(tempDraw, 0, 0); g.Dispose(); }

Pero ¿qué pasa si quiero dibujar un círculo, qué cambiará?

g.DrawRectangle(myPen, x1, y1, x2-x1, y2-y1);


Con este código puedes dibujar un círculo fácilmente ... C # es genial y fácil, amigo

public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Graphics myGraphics = base.CreateGraphics(); Pen myPen = new Pen(Color.Red); SolidBrush mySolidBrush = new SolidBrush(Color.Red); myGraphics.DrawEllipse(myPen, 50, 50, 150, 150); } }



Debes usar DrawEllipse :

// // Summary: // Draws an ellipse defined by a bounding rectangle specified by coordinates // for the upper-left corner of the rectangle, a height, and a width. // // Parameters: // pen: // System.Drawing.Pen that determines the color, width, // and style of the ellipse. // // x: // The x-coordinate of the upper-left corner of the bounding rectangle that // defines the ellipse. // // y: // The y-coordinate of the upper-left corner of the bounding rectangle that // defines the ellipse. // // width: // Width of the bounding rectangle that defines the ellipse. // // height: // Height of the bounding rectangle that defines the ellipse. // // Exceptions: // System.ArgumentNullException: // pen is null. public void DrawEllipse(Pen pen, int x, int y, int width, int height);


No hay método DrawCircle ; use DrawEllipse en DrawEllipse lugar. Tengo una clase estática con métodos de extensión de gráficos (entre otros no mostrados aquí) que dibujan y rellenan círculos. Son envoltorios alrededor de DrawEllipse y FillEllipse :

public static class GraphicsExtensions { public static void DrawCircle(this Graphics g, Pen pen, float centerX, float centerY, float radius) { g.DrawEllipse(pen, centerX - radius, centerY - radius, radius + radius, radius + radius); } public static void FillCircle(this Graphics g, Brush brush, float centerX, float centerY, float radius) { g.FillEllipse(brush, centerX - radius, centerY - radius, radius + radius, radius + radius); } }

Puedes llamarlos así:

g.FillCircle(myBrush, center X, centerY, radius); g.DrawCircle(myPen, centerX, centerY, radius);



private void DrawEllipseRectangle(PaintEventArgs e) { Pen p = new Pen(Color.Black, 3); Rectangle r = new Rectangle(100, 100, 100, 100); e.Graphics.DrawEllipse(p, r); } private void Form1_Paint(object sender, PaintEventArgs e) { DrawEllipseRectangle(e); }


PictureBox circle = new PictureBox(); circle.Paint += new PaintEventHandler(circle_Paint); void circle_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawEllipse(Pens.Red, 0, 0, 30, 30); }