Cómo: Establecer el ancho y la alineación del lápiz
Actualización: noviembre 2007
Cuando se crea un objeto Pen, se puede proporcionar al constructor el ancho del lápiz como uno de los argumentos. También se puede cambiar el ancho del lápiz con la propiedad Width de la clase Pen.
Una línea teórica tiene un ancho de 0. Cuando se dibuja una línea que tiene 1 píxel de ancho, los píxeles están centrados en la línea teórica. Si se dibuja una línea que tiene un ancho de más de un píxel, los píxeles están centrados en la línea teórica o aparecen a un lado de dicha línea. Se puede establecer la propiedad de alineación del lápiz de un objeto Pen para determinar cómo se ubicarán los píxeles dibujados con ese lápiz en relación con las líneas teóricas.
Los valores Center, Outset y Inset que aparecen en los ejemplos de código siguientes son miembros de la enumeración PenAlignment.
En el ejemplo de código siguiente se dibuja una línea dos veces: una vez con un lápiz negro de ancho 1 y otra vez con un lápiz verde de ancho 10.
Para cambiar el ancho de un lápiz
Establezca el valor de la propiedad Alignment en Center (el valor predeterminado) para especificar que los píxeles dibujados con el lápiz verde se centrarán en la línea teórica. En la siguiente ilustración se muestra la línea resultante.
En el ejemplo de código siguiente se dibuja un rectángulo dos veces: una vez con un lápiz negro de ancho 1 y otra vez con un lápiz verde de ancho 10.
Dim blackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 1) Dim greenPen As New Pen(Color.FromArgb(255, 0, 255, 0), 10) greenPen.Alignment = PenAlignment.Center ' Draw the line with the wide green pen. e.Graphics.DrawLine(greenPen, 10, 100, 100, 50) ' Draw the line with the thin black pen. e.Graphics.DrawLine(blackPen, 10, 100, 100, 50)
Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 1); Pen greenPen = new Pen(Color.FromArgb(255, 0, 255, 0), 10); greenPen.Alignment = PenAlignment.Center; // Draw the line with the wide green pen. e.Graphics.DrawLine(greenPen, 10, 100, 100, 50); // Draw the line with the thin black pen. e.Graphics.DrawLine(blackPen, 10, 100, 100, 50);
Para cambiar la alineación de un lápiz
Establezca el valor de la propiedad Alignment en Center para especificar que los píxeles dibujados con el lápiz verde se centrarán en el borde del rectángulo.
En la siguiente ilustración se muestra el rectángulo resultante.
Dim blackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 1) Dim greenPen As New Pen(Color.FromArgb(255, 0, 255, 0), 10) greenPen.Alignment = PenAlignment.Center ' Draw the rectangle with the wide green pen. e.Graphics.DrawRectangle(greenPen, 10, 100, 50, 50) ' Draw the rectangle with the thin black pen. e.Graphics.DrawRectangle(blackPen, 10, 100, 50, 50)
Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 1); Pen greenPen = new Pen(Color.FromArgb(255, 0, 255, 0), 10); greenPen.Alignment = PenAlignment.Center; // Draw the rectangle with the wide green pen. e.Graphics.DrawRectangle(greenPen, 10, 100, 50, 50); // Draw the rectangle with the thin black pen. e.Graphics.DrawRectangle(blackPen, 10, 100, 50, 50);
Para crear un lápiz de bajorrelieve
La alineación del lápiz verde se puede cambiar modificando la tercera instrucción del ejemplo de código anterior de la siguiente manera:
greenPen.Alignment = PenAlignment.Inset
greenPen.Alignment = PenAlignment.Inset;
Ahora, los píxeles de la línea verde ancha aparecen en la parte interior del rectángulo, tal como se muestra en la ilustración siguiente.