You are on page 1of 3

Como Crear Objetos Graphics para Dibujar en C# .

NET
Publicado por Antonio Adán Casillas C.

Antes de dibujar líneas y formas, representar texto o mostrar y manipular imágenes con GDI+ es preciso crear un objeto Graphics. El objeto Graphics representa una superficie de dibujo de GDI+ y se usa para crear imágenes gráficas. Para trabajar con gráficos existen los dos pasos siguientes: 1. Crear un objeto Graphics. 2. Usar el objeto Graphics para dibujar líneas y formas, representar texto o mostrar y manipular imágenes.

Crear un objeto Graphics El objeto Graphics se puede crear de diversas formas. Para crear un objeto Graphics • Reciba una referencia a un objeto Graphics como parte de PaintEventArgs del evento Paint de un formulario o un control. Este es el modo en que normalmente se obtiene una referencia a un objeto Graphics cuando se crea código de dibujo para un control. De forma similar, también se puede obtener un objeto gráfico como una propiedad de PrintPageEventArgs al controlar el evento PrintPage de un objeto PrintDocument. O bien • Llame al método CreateGraphics de un control o un formulario para obtener una referencia a un objeto Graphics que represente la superficie de dibujo de dicho control o formulario. Utilice este método si desea dibujar en un formulario o en un control que ya existía con anterioridad. O bien • Cree un objeto Graphics a partir de cualquier objeto que herede de Image. Este método resulta útil cuando se desea alterar una imagen que ya existe.

Las secciones siguientes proporcionan detalles sobre cada uno de estos procesos.

PaintEventArgs en el controlador de eventos Paint Al programar PaintEventHandler para controles o el evento PrintPage de un objeto PrintDocument, se proporciona un objeto gráfico como una de las propiedades de PaintEventArgs o PrintPageEventArgs. Para obtener una referencia a un objeto Graphics a partir de PaintEventArgs en el evento Paint 1. Declare el objeto Graphics. 2. Asigne la variable que hará referencia al objeto Graphics pasado como parte de PaintEventArgs. 3. Inserte código para dibujar en el formulario o control.

En el ejemplo siguiente se muestra cómo hacer referencia a un objeto Graphics desde PaintEventArgs en el evento Paint: private void Form1_Paint(object sender,

FromArgb(255.System. como archivos . 0)). // Insert code to paint the form here. Crear un objeto Graphics a partir de un objeto Image También se puede crear un objeto Graphics a partir de cualquier objeto que se derive de la clase Image.Windows. a diferencia de los píxeles de los archivos . Graphics g = pe.CreateGraphics(). g = this.bmp no indizados alberga un color. 300. 100). Normalmente.DrawLine(pen.FromImage(myBitmap). se controla el evento Paint del formulario y se realiza el gráfico mediante la propiedad Graphics de PaintEventArgs. Graphics g. Para crear un objeto Graphics a partir de un objeto Image • Llame al método Graphics. } CreateGraphics (Método) También puede utilizar el método CreateGraphics de un control o un formulario para obtener una referencia a un objeto Graphics que represente la superficie de dibujo de dicho control o formulario. 0.Forms. Pen pen = new Pen(Color. 20.bmp indizados. // Sets g to a graphics object representing the drawing surface of the // control or form g is a member of.Graphics. Nota Sólo puede crear objetos Graphics a partir de archivos . Para crear un objeto Graphics con el método CreateGraphics • Llame al método CreateGraphics del formulario o del control en el que desee representar gráficos. como se muestra en este ejemplo. Cada píxel de archivos . . e.FromImage. 0. que albergan un índice que hace referencia a una tabla de colores. Cómo Dibujar una línea en un formulario Windows Forms En este ejemplo se dibuja una línea en un formulario.bmp de 16 bits.bmp no indizados. 24 bits y 32 bits. Graphics g = Graphics. En el ejemplo siguiente se muestra cómo usar un objeto Bitmap: Bitmap myBitmap = new Bitmap(@"C:\Documents and Settings\Joe\Pics\myPic. 10. cuando se dibuja en un formulario.bmp").PaintEventArgs pe) { // Declares the Graphics object and sets it to the Graphics object // supplied in the PaintEventArgs. suministrando el nombre de la variable Image a partir de la cual desea crear un objeto Graphics.Graphics.

float x = 150. 200. System. drawBrush. drawFormat).Red). formGraphics. x.Drawing.DrawRectangle(myPen. System.Pen(System. System.StringFormat drawFormat = new System.0F. myPen. formGraphics.CreateGraphics(). formGraphics.Drawing. new Rectangle(0. 300)).Drawing.Color.Dispose(). myPen.Cómo: Dibujar una forma con contorno En este ejemplo se dibujan contornos de elipses y rectángulos en un formulario. Para obtener más información. 16).Drawing.Drawing.Drawing. 300)). puede utilizar TextRenderer para dibujar texto en un formulario.DrawString(drawString.0F. formGraphics. Por otra parte.Dispose().Pen myPen = new System.Font drawFont = new System. float y = 50. vea Cómo: Dibujar texto con GDI. 200.Pen myPen = new System.Black).Red).Drawing.Pen(System. 0. System.Font("Arial". } . } Cómo Dibujar texto en un formulario Windows En el ejemplo de código siguiente se muestra cómo utilizar el método DrawString de Graphics para dibujar texto en un formulario.Drawing.Graphics formGraphics = this.Drawing.Drawing.Color. formGraphics = this.Drawing. System. private void DrawEllipse() { System. formGraphics. y.DrawEllipse(myPen.Drawing. public void DrawString() { System.Dispose().Drawing.Graphics formGraphics.StringFormat().Drawing.SolidBrush(System. formGraphics. new Rectangle(0. 0.Dispose().Graphics formGraphics.Color.Dispose(). drawBrush. } private void DrawRectangle() { System. string drawString = "Sample Text".Drawing. formGraphics = this.CreateGraphics().Drawing.SolidBrush drawBrush = new System. drawFont.CreateGraphics().Dispose(). drawFont.Dispose().