TextRenderer.MeasureText Metodo

Definizione

Misura il testo specificato quando viene creato con il tipo di carattere specificato.

Overload

MeasureText(String, Font, Size, TextFormatFlags)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.

MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.

MeasureText(IDeviceContext, String, Font, Size)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato nel contesto di periferica specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale per il testo.

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato nel contesto di periferica specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale per il testo.

MeasureText(String, Font, Size)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale.

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato.

MeasureText(IDeviceContext, String, Font)

Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato.

MeasureText(String, Font)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato.

MeasureText(ReadOnlySpan<Char>, Font)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato.

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il contesto di periferica, il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.

MeasureText(ReadOnlySpan<Char>, Font, Size)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale.

MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il contesto di periferica, il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.

MeasureText(String, Font, Size, TextFormatFlags)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.

public:
 static System::Drawing::Size MeasureText(System::String ^ text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize, System::Windows::Forms::TextFormatFlags flags);
public static System.Drawing.Size MeasureText (string text, System.Drawing.Font font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
public static System.Drawing.Size MeasureText (string? text, System.Drawing.Font? font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
static member MeasureText : string * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size
Public Shared Function MeasureText (text As String, font As Font, proposedSize As Size, flags As TextFormatFlags) As Size

Parametri

text
String

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.

flags
TextFormatFlags

Istruzioni di formattazione da applicare al testo misurato.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font e il formato specificati.

Esempio

Nell'esempio di codice seguente viene illustrato come usare uno dei MeasureText metodi. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText dal gestore eventi del Paint modulo, passando e come PaintEventArgs.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Commenti

MeasureText usa i proposedSize parametri e flags per indicare la relazione di altezza a larghezza quando si determina la dimensione del testo. Quando si misura il testo su una singola riga, se il proposedSize parametro rappresenta un Size oggetto con una dimensione di altezza maggiore di Int32.MaxValue, il testo restituito Size verrà modificato in modo da riflettere l'altezza effettiva del testo.

È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText che accetta un parametro TextFormatFlags. Ad esempio, il comportamento predefinito della classe TextRenderer è di aggiungere spaziatura al rettangolo di delimitazione del testo creato per sistemare le parti sporgenti delle icone. Se è necessario creare una riga di testo senza tale spazio aggiuntivo, è necessario utilizzare le versioni dei metodi DrawText e MeasureText che accettano un parametro Size e TextFormatFlags. Per un esempio, vedere MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Nota

Questo overload di MeasureText(String, Font, Size, TextFormatFlags) ignorerà un TextFormatFlags valore di NoPadding o LeftAndRightPadding. Se si specifica un valore di riempimento diverso dal valore predefinito, è consigliabile usare l'overload di MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) che accetta un IDeviceContext oggetto.

Si applica a

MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.

public:
 static System::Drawing::Size MeasureText(ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize, System::Windows::Forms::TextFormatFlags flags);
public static System.Drawing.Size MeasureText (ReadOnlySpan<char> text, System.Drawing.Font? font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
static member MeasureText : ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size
Public Shared Function MeasureText (text As ReadOnlySpan(Of Char), font As Font, proposedSize As Size, flags As TextFormatFlags) As Size

Parametri

text
ReadOnlySpan<Char>

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.

flags
TextFormatFlags

Istruzioni di formattazione da applicare al testo misurato.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font e il formato specificati.

Eccezioni

La classe ModifyString è stata impostata.

Si applica a

MeasureText(IDeviceContext, String, Font, Size)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato nel contesto di periferica specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale per il testo.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, System::String ^ text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string text, System.Drawing.Font font, System.Drawing.Size proposedSize);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string? text, System.Drawing.Font? font, System.Drawing.Size proposedSize);
static member MeasureText : System.Drawing.IDeviceContext * string * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As String, font As Font, proposedSize As Size) As Size

Parametri

dc
IDeviceContext

Contesto di periferica in cui misurare il testo.

text
String

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font specificato.

Eccezioni

dc è null.

Esempio

Nell'esempio di codice seguente viene illustrato come usare uno dei MeasureText metodi. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText dal gestore eventi del Paint modulo, passando e come PaintEventArgs.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Commenti

Il MeasureText metodo usa il proposedSize parametro per indicare la relazione di altezza a larghezza quando si determina la dimensione del testo. Quando si misura il testo su una singola riga, se il proposedSize parametro rappresenta un Size oggetto con una dimensione di altezza maggiore di Int32.MaxValue, il testo restituito Size verrà modificato in modo da riflettere l'altezza effettiva del testo.

Si applica a

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato nel contesto di periferica specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale per il testo.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, ReadOnlySpan<char> text, System.Drawing.Font? font, System.Drawing.Size proposedSize);
static member MeasureText : System.Drawing.IDeviceContext * ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As ReadOnlySpan(Of Char), font As Font, proposedSize As Size) As Size

Parametri

dc
IDeviceContext

Contesto di periferica in cui misurare il testo.

text
ReadOnlySpan<Char>

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font specificato.

Eccezioni

dc costruito in modo predefinito è null.

Si applica a

MeasureText(String, Font, Size)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale.

public:
 static System::Drawing::Size MeasureText(System::String ^ text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize);
public static System.Drawing.Size MeasureText (string text, System.Drawing.Font font, System.Drawing.Size proposedSize);
public static System.Drawing.Size MeasureText (string? text, System.Drawing.Font? font, System.Drawing.Size proposedSize);
static member MeasureText : string * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size
Public Shared Function MeasureText (text As String, font As Font, proposedSize As Size) As Size

Parametri

text
String

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font specificato.

Esempio

Nell'esempio di codice seguente viene illustrato come usare uno dei MeasureText metodi. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText dal gestore eventi del Paint modulo, passando e come PaintEventArgs.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Commenti

Il MeasureText metodo usa il proposedSize parametro per indicare la relazione di altezza a larghezza quando si determina la dimensione del testo. Quando si misura il testo su una singola riga, se il proposedSize parametro rappresenta un Size oggetto con una dimensione di altezza maggiore di Int32.MaxValue, il testo restituito Size verrà modificato in modo da riflettere l'altezza effettiva del testo.

Si applica a

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, ReadOnlySpan<char> text, System::Drawing::Font ^ font);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, ReadOnlySpan<char> text, System.Drawing.Font? font);
static member MeasureText : System.Drawing.IDeviceContext * ReadOnlySpan<char> * System.Drawing.Font -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As ReadOnlySpan(Of Char), font As Font) As Size

Parametri

dc
IDeviceContext

Contesto di periferica in cui misurare il testo.

text
ReadOnlySpan<Char>

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

Restituisce

Size, in pixel, di text creato con font specificato nel contesto di dispositivo specificato.

Eccezioni

dc costruito in modo predefinito è null.

Si applica a

MeasureText(IDeviceContext, String, Font)

Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, System::String ^ text, System::Drawing::Font ^ font);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string text, System.Drawing.Font font);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string? text, System.Drawing.Font? font);
static member MeasureText : System.Drawing.IDeviceContext * string * System.Drawing.Font -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As String, font As Font) As Size

Parametri

dc
IDeviceContext

Contesto di periferica in cui misurare il testo.

text
String

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

Restituisce

Struttura Size, in pixel, del parametro text creato su una sola riga con il parametro font specificato nel contesto di periferica specificato.

Esempio

Nell'esempio di codice seguente viene illustrato come usare uno dei MeasureText metodi. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText dal gestore eventi del Paint modulo, passando e come PaintEventArgs.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Commenti

Il MeasureText metodo richiede che il testo venga disegnato su una singola riga.

Si applica a

MeasureText(String, Font)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato.

public:
 static System::Drawing::Size MeasureText(System::String ^ text, System::Drawing::Font ^ font);
public static System.Drawing.Size MeasureText (string text, System.Drawing.Font font);
public static System.Drawing.Size MeasureText (string? text, System.Drawing.Font? font);
static member MeasureText : string * System.Drawing.Font -> System.Drawing.Size
Public Shared Function MeasureText (text As String, font As Font) As Size

Parametri

text
String

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

Restituisce

Struttura Size, in pixel, del parametro text creato su una sola riga con il parametro font specificato. È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText(IDeviceContext, String, Font, Rectangle, Color, TextFormatFlags) che accetta un parametro TextFormatFlags. Ad esempio, il comportamento predefinito della classe TextRenderer è di aggiungere spaziatura al rettangolo di delimitazione del testo creato per sistemare le parti sporgenti delle icone. Se è necessario creare una riga di testo senza tale spazio aggiuntivo, è necessario utilizzare le versioni dei metodi DrawText(IDeviceContext, String, Font, Point, Color) e MeasureText(IDeviceContext, String, Font) che accettano un parametro Size e TextFormatFlags. Per un esempio, vedere MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare il metodo MeasureText. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare MeasureText1 dal gestore eventi del Paint modulo, passando e come PaintEventArgs.

private void MeasureText1(PaintEventArgs e)
{
    String text1 = "Measure this text";
    Font arialBold = new Font("Arial", 12.0F);
    Size textSize = TextRenderer.MeasureText(text1, arialBold);
    TextRenderer.DrawText(e.Graphics, text1, arialBold, 
        new Rectangle(new Point(10, 10), textSize), Color.Red);  
}
Private Sub MeasureText1(ByVal e As PaintEventArgs)
    Dim text1 As String = "Measure this text"
    Dim arialBold As New Font("Arial", 12.0F)
    Dim textSize As Size = TextRenderer.MeasureText(text1, arialBold)
    TextRenderer.DrawText(e.Graphics, text1, arialBold, _
        New Rectangle(New Point(10, 10), textSize), Color.Red)

End Sub

Commenti

Il MeasureText metodo richiede che il testo venga disegnato su una singola riga.

Si applica a

MeasureText(ReadOnlySpan<Char>, Font)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato.

public:
 static System::Drawing::Size MeasureText(ReadOnlySpan<char> text, System::Drawing::Font ^ font);
public static System.Drawing.Size MeasureText (ReadOnlySpan<char> text, System.Drawing.Font? font);
static member MeasureText : ReadOnlySpan<char> * System.Drawing.Font -> System.Drawing.Size
Public Shared Function MeasureText (text As ReadOnlySpan(Of Char), font As Font) As Size

Parametri

text
ReadOnlySpan<Char>

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

Restituisce

Size, in pixel, di testo creato su una singola riga con il tipo di carattere specificato. È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Rectangle, Color, TextFormatFlags) che accetta un parametro TextFormatFlags. Ad esempio, il comportamento predefinito della classe TextRenderer è di aggiungere spaziatura al rettangolo di delimitazione del testo creato per sistemare le parti sporgenti delle icone. Se è necessario creare una riga di testo senza questi spazi aggiuntivi, è necessario usare le versioni dei metodi DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Point, Color) e MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) che accettano un parametro Size e TextFormatFlags. Per un esempio, vedere MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Si applica a

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il contesto di periferica, il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize, System::Windows::Forms::TextFormatFlags flags);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, ReadOnlySpan<char> text, System.Drawing.Font? font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
static member MeasureText : System.Drawing.IDeviceContext * ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As ReadOnlySpan(Of Char), font As Font, proposedSize As Size, flags As TextFormatFlags) As Size

Parametri

dc
IDeviceContext

Contesto di periferica in cui misurare il testo.

text
ReadOnlySpan<Char>

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.

flags
TextFormatFlags

Istruzioni di formattazione da applicare al testo misurato.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font e il formato specificati.

Eccezioni

dc è null.

La classe ModifyString è stata impostata.

Si applica a

MeasureText(ReadOnlySpan<Char>, Font, Size)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale.

public:
 static System::Drawing::Size MeasureText(ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize);
public static System.Drawing.Size MeasureText (ReadOnlySpan<char> text, System.Drawing.Font? font, System.Drawing.Size proposedSize);
static member MeasureText : ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size
Public Shared Function MeasureText (text As ReadOnlySpan(Of Char), font As Font, proposedSize As Size) As Size

Parametri

text
ReadOnlySpan<Char>

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font specificato.

Si applica a

MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il contesto di periferica, il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, System::String ^ text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize, System::Windows::Forms::TextFormatFlags flags);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string text, System.Drawing.Font font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string? text, System.Drawing.Font? font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
static member MeasureText : System.Drawing.IDeviceContext * string * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As String, font As Font, proposedSize As Size, flags As TextFormatFlags) As Size

Parametri

dc
IDeviceContext

Contesto di periferica in cui misurare il testo.

text
String

Testo da misurare.

font
Font

Struttura Font da applicare al testo misurato.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.

flags
TextFormatFlags

Istruzioni di formattazione da applicare al testo misurato.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font e il formato specificati.

Eccezioni

dc è null.

Esempio

Nell'esempio seguente viene illustrato come utilizzare i MeasureText metodi e DrawText per disegnare una singola riga di testo in stili di carattere diversi. Per eseguire questo esempio, incollare il codice seguente in un Windows Form e chiamare DrawALineOfText dal gestore eventi del Paint modulo, passando e come PaintEventArgs.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Commenti

Il MeasureText metodo usa i proposedSize parametri e flags per indicare la relazione tra altezza e larghezza durante la determinazione delle dimensioni del testo. Quando si misura il testo su una singola riga, se il proposedSize parametro rappresenta un Size oggetto con una dimensione di altezza maggiore di Int32.MaxValue, l'oggetto restituito Size verrà regolato in modo da riflettere l'altezza effettiva del testo.

È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText che accetta un parametro TextFormatFlags. Ad esempio, il comportamento predefinito della classe TextRenderer è di aggiungere spaziatura al rettangolo di delimitazione del testo creato per sistemare le parti sporgenti delle icone. Se è necessario disegnare una riga di testo senza questi spazi aggiuntivi, usare le versioni di DrawText e che accettano un Size parametro e MeasureTextTextFormatFlags , come illustrato nell'esempio.

Si applica a