Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al realizar un dibujo personalizado, es posible que quiera centrar el texto dibujado en un formulario o control. Puede alinear fácilmente el texto dibujado con los DrawString métodos o DrawText creando el objeto de formato correcto y estableciendo las marcas de formato adecuadas.
Para dibujar texto centrado con GDI+ (DrawString)
Use un StringFormat con el método adecuado DrawString para especificar el texto centrado.
string text1 = "Use StringFormat and Rectangle objects to" + " center text in a rectangle."; using (Font font1 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point)) { Rectangle rect1 = new Rectangle(10, 10, 130, 140); // Create a StringFormat object with the each line of text, and the block // of text centered on the page. StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Center; // Draw the text and the surrounding rectangle. e.Graphics.DrawString(text1, font1, Brushes.Blue, rect1, stringFormat); e.Graphics.DrawRectangle(Pens.Black, rect1); }
Dim text1 As String = "Use StringFormat and Rectangle objects to" & _ " center text in a rectangle." Dim font1 As New Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point) Try Dim rect1 As New Rectangle(10, 10, 130, 140) ' Create a StringFormat object with the each line of text, and the block ' of text centered on the page. Dim stringFormat As New StringFormat() stringFormat.Alignment = StringAlignment.Center stringFormat.LineAlignment = StringAlignment.Center ' Draw the text and the surrounding rectangle. e.Graphics.DrawString(text1, font1, Brushes.Blue, rect1, stringFormat) e.Graphics.DrawRectangle(Pens.Black, rect1) Finally font1.Dispose() End Try
Para dibujar texto centrado con GDI (DrawText)
Usa la TextFormatFlags enumeración para envolver y centrar texto vertical y horizontalmente con el método adecuado DrawText.
string text2 = "Use TextFormatFlags and Rectangle objects to" + " center text in a rectangle."; using (Font font2 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point)) { Rectangle rect2 = new Rectangle(150, 10, 130, 140); // Create a TextFormatFlags with word wrapping, horizontal center and // vertical center specified. TextFormatFlags flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak; // Draw the text and the surrounding rectangle. TextRenderer.DrawText(e.Graphics, text2, font2, rect2, Color.Blue, flags); e.Graphics.DrawRectangle(Pens.Black, rect2); }
Dim text2 As String = "Use TextFormatFlags and Rectangle objects to" & _ " center text in a rectangle." Dim font2 As New Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point) Try Dim rect2 As New Rectangle(150, 10, 130, 140) ' Create a TextFormatFlags with word wrapping, horizontal center and ' vertical center specified. Dim flags As TextFormatFlags = TextFormatFlags.HorizontalCenter Or _ TextFormatFlags.VerticalCenter Or TextFormatFlags.WordBreak ' Draw the text and the surrounding rectangle. TextRenderer.DrawText(e.Graphics, text2, font2, rect2, Color.Blue, flags) e.Graphics.DrawRectangle(Pens.Black, rect2) Finally font2.Dispose() End Try
Compilar el código
Los ejemplos de código anteriores están diseñados para su uso con Windows Forms y requieren PaintEventArgse
, que es un parámetro de PaintEventHandler.
Consulte también
.NET Desktop feedback