Condividi tramite


Creazione di testo

È possibile utilizzare il metodo DrawString della classe Graphics per creare testo in una posizione specificata o all'interno di un rettangolo specificato.

Creazione di testo in una posizione specificata

Per creare testo in una posizione specificata sono necessari gli oggetti Graphics, FontFamily, Font, PointF e Brush.

Nell'esempio che segue vene creata la stringa "Hello" nella posizione (30, 10). La famiglia di caratteri è Times New Roman. Il carattere, ovvero un singolo membro della famiglia di caratteri, è Times New Roman, dimensione 24 pixel, stile normale.

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);

Nell'illustrazione che segue si mostra l'output del codice precedente.

Nell'esempio precedente il costruttore FontFamily riceve una stringa che identifica il gruppo di caratteri. L'oggetto FontFamily è il primo argomento passato al costruttore Font. Con il secondo argomento passato al costruttore Font si specifica la dimensione del carattere, misurata nelle unità specificate nel quarto argomento. Il terzo argomento consente di specificare lo stile del carattere, ad esempio normale, grassetto o corsivo.

Il metodo DrawString riceve quattro argomenti. Il primo è la stringa da creare. Il secondo è l'oggetto Font precedentemente creato. Il terzo argomento è un oggetto SolidBrush utilizzato per riempire i caratteri della stringa. Il quarto argomento è un oggetto PointF che contiene le coordinate dell'angolo in alto a sinistra della stringa.

Creazione di testo in un rettangolo

Uno dei metodi DrawString della classe Graphics comprende un parametro RectangleF. Chiamando tale metodo DrawString è possibile creare testo che va a capo all'interno di un rettangolo specificato. Per creare testo all'interno di un rettangolo sono necessari gli oggetti Graphics, FontFamily, Font, RectangleF e Brush.

Nell'esempio che segue viene creato un rettangolo con l'angolo superiore sinistro nella posizione (30, 10), larghezza 100 e altezza 122. Il codice disegna quindi una stringa all'interno del rettangolo. limitata dal rettangolo e che va a capo senza sillabazione.

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);  

Nell'illustrazione che segue si mostra il testo creato nel rettangolo.

Nell'esempio precedente il quarto argomento passato al metodo DrawString è un oggetto RectangleF che specifica il rettangolo di delimitazione per il testo.