Comment : écrire du texte renvoyé à la ligne dans un rectangle
Vous pouvez dessiner du texte encapsulé dans un rectangle à l’aide de la DrawString méthode surchargée de la Graphics classe qui prend un ou RectangleF un Rectangle paramètre. Vous utiliserez également un Brush et un Font.
Vous pouvez également dessiner du texte encapsulé dans un rectangle à l’aide de la DrawText méthode surchargée de l’élément TextRenderer qui prend un Rectangle paramètre et un TextFormatFlags paramètre. Vous utiliserez également un Color et un Font.
L’illustration suivante montre la sortie du texte dessiné dans le rectangle lorsque vous utilisez la DrawString méthode :
Pour dessiner du texte encapsulé dans un rectangle avec GDI+
Utilisez la DrawString méthode surchargée, en passant le texte souhaité, Rectangle ou RectangleF, Font et Brush.
string text1 = "Draw text in a rectangle by passing a RectF to the DrawString method."; using (Font font1 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point)) { RectangleF rectF1 = new RectangleF(30, 10, 100, 122); e.Graphics.DrawString(text1, font1, Brushes.Blue, rectF1); e.Graphics.DrawRectangle(Pens.Black, Rectangle.Round(rectF1)); }
Dim text1 As String = "Draw text in a rectangle by passing a RectF to the DrawString method." Dim font1 As New Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point) Try Dim rectF1 As New RectangleF(30, 10, 100, 122) e.Graphics.DrawString(text1, font1, Brushes.Blue, rectF1) e.Graphics.DrawRectangle(Pens.Black, Rectangle.Round(rectF1)) Finally font1.Dispose() End Try
Pour dessiner du texte encapsulé dans un rectangle avec GDI
Utilisez la valeur d’énumération pour spécifier que TextFormatFlags le texte doit être encapsulé avec la DrawText méthode surchargée, en passant le texte souhaité, RectangleFont et Color.
string text2 = "Draw text in a rectangle by passing a RectF to the DrawString method."; using (Font font2 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point)) { Rectangle rect2 = new Rectangle(30, 10, 100, 122); // Specify the text is wrapped. TextFormatFlags flags = TextFormatFlags.WordBreak; TextRenderer.DrawText(e.Graphics, text2, font2, rect2, Color.Blue, flags); e.Graphics.DrawRectangle(Pens.Black, Rectangle.Round(rect2)); }
Dim text2 As String = _ "Draw text in a rectangle by passing a RectF to the DrawString method." Dim font2 As New Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point) Try Dim rect2 As New Rectangle(30, 10, 100, 122) ' Specify the text is wrapped. Dim flags As TextFormatFlags = TextFormatFlags.WordBreak TextRenderer.DrawText(e.Graphics, text2, font2, rect2, Color.Blue, flags) e.Graphics.DrawRectangle(Pens.Black, Rectangle.Round(rect2)) Finally font2.Dispose() End Try
Compilation du code
Les exemples précédents nécessitent :
- PaintEventArgs
e
, qui est un paramètre de PaintEventHandler.
Voir aussi
.NET Desktop feedback