Le funzioni DrawString e MeasureString

Quando vengono creati grafici, indicatori o altri supporti di visualizzazione, è importante rendere chiaro il contenuto di tali immagini e spesso è necessario ricorrere a delle indicazioni testuali.
Per plottare delle scritte su un’immagine il linguaggio VB.NET mette a disposizione la funzione DrawString.
La sintassi per questo tipo di funzione è la seguente:



Public Sub DrawString (
 s As String,
 font As Font,
 brush As Brush,
 point As PointF
)


Invece, i parametri che riceve in input sono:

  • s (String), la stringa da disegnare;
  • font (Font), oggetto font che definisce il formato del testo;
  • brush (Brush), determina il colore del testo;
  • layoutRectangle (RectangleF), specifica la posizione del testo;
  • format (StringFormat), specifica gli attributi di formattazione, quali l’interlinea e l’allineamento.

Esempio di codice in VB.NET


Public Sub DrawStringPointF(ByVal e As PaintEventArgs)

    ' Create string to draw.
    Dim drawString As [String] = "Sample Text"

    ' Create font and brush.
    Dim drawFont As New Font("Arial", 16)
    Dim drawBrush As New SolidBrush(Color.Black)

    ' Create point for upper-left corner of drawing.
    Dim drawPoint As New PointF(150.0F, 150.0F)

    ' Draw string to screen.
    e.Graphics.DrawString(drawString, drawFont, drawBrush, drawPoint)
End Sub

La funzione MeasureString è progettata per l'utilizzo con stringhe e include una piccola quantità di spazio aggiuntivo prima e dopo la stringa per le parti sporgenti delle icone.
La MeasureString accetta i seguenti parametri:
  • text (String), stringa da misurare;
  • font (Font), oggetto Font che specifica il formato della riga.

Esempio di codice in VB.NET
Public Function MeasureString (
 text As String,
 font As Font
) As SizeF


Nell'esempio di codice seguente vengono eseguite le seguenti azioni:

  • Crea una stringa da misurare.
  • Crea un oggetto tipo di carattere e lo imposta su Arial a 16 punti.
  • Crea un oggetto dimensioni e utilizzata e l'oggetto tipo di carattere per misurare le dimensioni della stringa.
  • Disegna un rettangolo rosso utilizzando le dimensioni misurate della stringa.
  • Disegna la stringa all'interno del rettangolo disegnato.

Private Sub MeasureStringMin(ByVal e As PaintEventArgs)

    ' Set up string.
    Dim measureString As String = "Measure String"
    Dim stringFont As New Font("Arial", 16)

    ' Measure string.
    Dim stringSize As New SizeF
    stringSize = e.Graphics.MeasureString(measureString, stringFont)

    ' Draw rectangle representing size of string.
    e.Graphics.DrawRectangle(New Pen(Color.Red, 1), 0.0F, 0.0F, _
    stringSize.Width, stringSize.Height)

    ' Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, _
    New PointF(0, 0))
End Sub

MeasureString restituisce una struttura (un oggetto di tipo SizeF) che rappresenta le dimensioni della stringa. L’unità di misura della stringa è quella specificata dalla proprietà PageUnit presente in Graphics.

Commenti

Post popolari in questo blog

Resampling dei dati

Indici di performance di una strategia di trading. Calmar Ratio, Sharpe Ratio, Sortino Ratio

Metodi di calcolo del PNL