Compartir a través de


Dibujar texto

Se puede utilizar el método DrawString de la clase Graphics para dibujar texto en una ubicación especificada o en un rectángulo especificado.

Dibujar texto en una ubicación especificada

Para dibujar texto en una ubicación especificada, son necesarios los objetos Graphics, FontFamily, Font, PointF y Brush.

En el ejemplo siguiente se dibuja la cadena "Hello" en la ubicación (30, 10). La familia de fuentes es Times New Roman. La fuente, que es uno de los miembros de la familia de fuentes, es Times New Roman con tamaño de 24 píxeles y estilo normal.

Dim fontFamily As New FontFamily("Times New Roman")
Dim font As New Font(fontFamily, 24, FontStyle.Bold, GraphicsUnit.Pixel)
Dim pointF As New PointF(30, 10)
Dim solidBrush As New SolidBrush(Color.FromArgb(255, 0, 0, 255))

e.Graphics.DrawString("Hello", font, solidBrush, pointF)
[C#]
FontFamily fontFamily = new FontFamily("Times New Roman");
Font font = new Font(fontFamily, 24, FontStyle.Bold, GraphicsUnit.Pixel);
PointF pointF = new PointF(30, 10);
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));

e.Graphics.DrawString("Hello", font, solidBrush, pointF);

En la siguiente ilustración se muestra el resultado del código anterior.

En el ejemplo anterior, el constructor FontFamily recibe una cadena que identifica la familia de fuentes. El objeto FontFamily se pasa como primer argumento al constructor Font. El segundo argumento que se pasa al constructor Font especifica el tamaño de la fuente medido en unidades dadas por el cuarto argumento. El tercer argumento especifica el estilo (normal, negrita o cursiva) de la fuente.

El método DrawString recibe cuatro argumentos. El primer argumento es la cadena que se va a dibujar. El segundo argumento es el objeto Font que se construyó anteriormente. El tercer argumento es un objeto SolidBrush utilizado para rellenar los caracteres de la cadena. El cuarto argumento es un objeto PointF que contiene las coordenadas de la esquina superior izquierda de la cadena.

Dibujar texto en un rectángulo

Uno de los métodos DrawString de la clase Graphics toma un parámetro RectangleF. Si se llama a ese método DrawString, se puede dibujar texto que se ajusta a un rectángulo especificado. Para dibujar texto en un rectángulo, son necesarios los objetos Graphics, FontFamily, Font, RectangleF y Brush.

En el ejemplo siguiente se crea un rectángulo con la esquina superior izquierda en (30, 10), un ancho de 100 y un alto de 122. A continuación el código dibuja una cadena dentro del rectángulo. La cadena queda restringida al rectángulo y se ajusta sin partir las palabras.

Dim myText As String = "Draw text in a rectangle by passing a RectangleF to the DrawString method."

Dim fontFamily As New FontFamily("Arial")
Dim font As New Font( _
   fontFamily, _
   12, _
   FontStyle.Bold, _
   GraphicsUnit.Point)
Dim rect As New Rectangle(30, 10, 100, 122)
Dim solidBrush As New SolidBrush(Color.FromArgb(255, 0, 0, 255))

e.Graphics.DrawString(myText, font, solidBrush, _
   RectangleF.op_implicit(rect))

Dim pen As Pen = Pens.Black
e.Graphics.DrawRectangle(pen, rect)
[C#]
string text = "Draw text in a rectangle by passing a RectangleF to the DrawString method.";

FontFamily fontFamily = new FontFamily("Arial");
Font font = new Font(
   fontFamily,
   12,
   FontStyle.Bold,
   GraphicsUnit.Point);
Rectangle rect = new Rectangle(30, 10, 100, 122);
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));

e.Graphics.DrawString(text, font, solidBrush, rect); 

Pen pen = Pens.Black;
e.Graphics.DrawRectangle(pen, rect);  

En la siguiente ilustración se muestra el texto que se dibuja en el rectángulo.

En el ejemplo anterior, el cuarto argumento que se pasa al método DrawString es un objeto RectangleF que especifica el rectángulo delimitador del texto.