TextRenderer.MeasureText Metodo

Definizione

Misura il testo specificato quando viene creato con il tipo di carattere specificato.Measures the specified text when drawn with the specified font.

Overload

MeasureText(String, Font)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato.Provides the size, in pixels, of the specified text when drawn with the specified font.

MeasureText(IDeviceContext, String, Font)

Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato.Provides the size, in pixels, of the specified text drawn with the specified font in the specified device context.

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.Provides the size, in pixels, of the specified text when drawn with the specified font, using the specified size to create an initial bounding rectangle.

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.Provides the size, in pixels, of the specified text when drawn with the specified font in the specified device context, using the specified size to create an initial bounding rectangle for the text.

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.Provides the size, in pixels, of the specified text when drawn with the specified font and formatting instructions, using the specified size to create the initial bounding rectangle for the text.

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.Provides the size, in pixels, of the specified text when drawn with the specified device context, font, and formatting instructions, using the specified size to create the initial bounding rectangle for the text.

MeasureText(String, Font)

Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato.Provides the size, in pixels, of the specified text when drawn with the specified font.

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);
static member MeasureText : string * System.Drawing.Font -> System.Drawing.Size

Parametri

text
String

Testo da misurare.The text to measure.

font
Font

Struttura Font da applicare al testo misurato.The Font to apply to the measured text.

Restituisce

Struttura Size, in pixel, del parametro text creato su una sola riga con il parametro font specificato.The Size, in pixels, of text drawn on a single line with the specified font. È 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.You can manipulate how the text is drawn by using one of the DrawText(IDeviceContext, String, Font, Rectangle, Color, TextFormatFlags) overloads that takes a TextFormatFlags parameter. 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.For example, the default behavior of the TextRenderer is to add padding to the bounding rectangle of the drawn text to accommodate overhanging glyphs. 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.If you need to draw a line of text without these extra spaces you should use the versions of DrawText(IDeviceContext, String, Font, Point, Color) and MeasureText(IDeviceContext, String, Font) that take a Size and TextFormatFlags parameter. Per un esempio, vedere MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).For an example, see MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare il metodo MeasureText.The following code example demonstrates how to use the MeasureText method. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare MeasureText1 dal gestore dell'evento Paint del modulo, passando e come PaintEventArgs.To run this example, paste the code into a Windows Form and call MeasureText1 from the form's Paint event handler, passing e as 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 metodo MeasureText richiede che il testo venga disegnato su una sola riga.The MeasureText method requires that the text is drawn on a single line.

MeasureText(IDeviceContext, String, Font)

Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato.Provides the size, in pixels, of the specified text drawn with the specified font in the specified device context.

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);
static member MeasureText : System.Drawing.IDeviceContext * string * System.Drawing.Font -> System.Drawing.Size

Parametri

dc
IDeviceContext

Contesto di periferica in cui misurare il testo.The device context in which to measure the text.

text
String

Testo da misurare.The text to measure.

font
Font

Struttura Font da applicare al testo misurato.The Font to apply to the measured text.

Restituisce

Struttura Size, in pixel, del parametro text creato su una sola riga con il parametro font specificato nel contesto di periferica specificato.The Size, in pixels, of text drawn in a single line with the specified font in the specified device context.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare uno dei metodi MeasureText.The following code example demonstrates how to use one of the MeasureText methods. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText dal gestore dell'evento Paint del modulo, passando e come PaintEventArgs.To run this example, paste the code into a Windows Form and call DrawALineOfText from the form's Paint event handler, passing e as 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 metodo MeasureText richiede che il testo venga disegnato su una sola riga.The MeasureText method requires that the text is drawn on a single line.

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.Provides the size, in pixels, of the specified text when drawn with the specified font, using the specified size to create an initial bounding rectangle.

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);
static member MeasureText : string * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size

Parametri

text
String

Testo da misurare.The text to measure.

font
Font

Struttura Font da applicare al testo misurato.The Font to apply to the measured text.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.The Size of the initial bounding rectangle.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font specificato.The Size, in pixels, of text drawn with the specified font.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare uno dei metodi MeasureText.The following code example demonstrates how to use one of the MeasureText methods. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText dal gestore dell'evento Paint del modulo, passando e come PaintEventArgs.To run this example, paste the code into a Windows Form and call DrawALineOfText from the form's Paint event handler, passing e as 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 metodo MeasureText usa il parametro proposedSize per indicare la relazione tra altezza e larghezza quando si determinano le dimensioni del testo.The MeasureText method uses the proposedSize parameter to indicate the relationship of height to width when determining the text size. Quando si misura il testo su una sola riga, se il parametro proposedSize rappresenta un Size con una dimensione di altezza maggiore di Int32.MaxValue, il Size restituito verrà modificato in modo da riflettere l'altezza effettiva del testo.When measuring text on a single line, if the proposedSize parameter represents a Size with a height dimension greater than Int32.MaxValue, the returned Size will be adjusted to reflect the actual height of the text.

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.Provides the size, in pixels, of the specified text when drawn with the specified font in the specified device context, using the specified size to create an initial bounding rectangle for the text.

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);
static member MeasureText : System.Drawing.IDeviceContext * string * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size

Parametri

dc
IDeviceContext

Contesto di periferica in cui misurare il testo.The device context in which to measure the text.

text
String

Testo da misurare.The text to measure.

font
Font

Struttura Font da applicare al testo misurato.The Font to apply to the measured text.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.The Size of the initial bounding rectangle.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font specificato.The Size, in pixels, of text drawn with the specified font.

Eccezioni

dc è null.dc is null.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare uno dei metodi MeasureText.The following code example demonstrates how to use one of the MeasureText methods. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText dal gestore dell'evento Paint del modulo, passando e come PaintEventArgs.To run this example, paste the code into a Windows Form and call DrawALineOfText from the form's Paint event handler, passing e as 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 metodo MeasureText usa il parametro proposedSize per indicare la relazione tra altezza e larghezza quando si determinano le dimensioni del testo.The MeasureText method uses the proposedSize parameter to indicate the relationship of height to width when determining the text size. Quando si misura il testo su una sola riga, se il parametro proposedSize rappresenta un Size con una dimensione di altezza maggiore di Int32.MaxValue, il Size restituito verrà modificato in modo da riflettere l'altezza effettiva del testo.When measuring text on a single line, if the proposedSize parameter represents a Size with a height dimension greater than Int32.MaxValue, the returned Size will be adjusted to reflect the actual height of the text.

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.Provides the size, in pixels, of the specified text when drawn with the specified font and formatting instructions, using the specified size to create the initial bounding rectangle for the text.

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);
static member MeasureText : string * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size

Parametri

text
String

Testo da misurare.The text to measure.

font
Font

Struttura Font da applicare al testo misurato.The Font to apply to the measured text.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.The Size of the initial bounding rectangle.

flags
TextFormatFlags

Istruzioni di formattazione da applicare al testo misurato.The formatting instructions to apply to the measured text.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font e il formato specificati.The Size, in pixels, of text drawn with the specified font and format.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare uno dei metodi MeasureText.The following code example demonstrates how to use one of the MeasureText methods. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText dal gestore dell'evento Paint del modulo, passando e come PaintEventArgs.To run this example, paste the code into a Windows Form and call DrawALineOfText from the form's Paint event handler, passing e as 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 parametri proposedSize e flags per indicare la relazione tra altezza e larghezza quando si determinano le dimensioni del testo.MeasureText uses the proposedSize and flags parameters to indicate the relationship of height to width when determining the text size. Quando si misura il testo su una sola riga, se il parametro proposedSize rappresenta un Size con una dimensione di altezza maggiore di Int32.MaxValue, il Size restituito verrà modificato in modo da riflettere l'altezza effettiva del testo.When measuring text on a single line, if the proposedSize parameter represents a Size with a height dimension greater than Int32.MaxValue, the returned Size will be adjusted to reflect the actual height of the text.

È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText che accetta un parametro TextFormatFlags.You can manipulate how the text is drawn by using one of the DrawText overloads that takes a TextFormatFlags parameter. 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.For example, the default behavior of the TextRenderer is to add padding to the bounding rectangle of the drawn text to accommodate overhanging glyphs. 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.If you need to draw a line of text without these extra spaces you should use the versions of DrawText and MeasureText that take a Size and TextFormatFlags parameter. Per un esempio, vedere MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).For an example, see MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Nota

Questo overload di MeasureText(String, Font, Size, TextFormatFlags) ignorerà un valore TextFormatFlags di NoPadding o LeftAndRightPadding.This overload of MeasureText(String, Font, Size, TextFormatFlags) will ignore a TextFormatFlags value of NoPadding or LeftAndRightPadding. Se si specifica un valore di riempimento diverso da quello predefinito, è necessario usare l'overload di MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) che accetta un oggetto IDeviceContext.If you are specifying a padding value other than the default, you should use the overload of MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) that takes a IDeviceContext object.

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.Provides the size, in pixels, of the specified text when drawn with the specified device context, font, and formatting instructions, using the specified size to create the initial bounding rectangle for the text.

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);
static member MeasureText : System.Drawing.IDeviceContext * string * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size

Parametri

dc
IDeviceContext

Contesto di periferica in cui misurare il testo.The device context in which to measure the text.

text
String

Testo da misurare.The text to measure.

font
Font

Struttura Font da applicare al testo misurato.The Font to apply to the measured text.

proposedSize
Size

Struttura Size del rettangolo di delimitazione iniziale.The Size of the initial bounding rectangle.

flags
TextFormatFlags

Istruzioni di formattazione da applicare al testo misurato.The formatting instructions to apply to the measured text.

Restituisce

Struttura Size, in pixel, del parametro text creato con il parametro font e il formato specificati.The Size, in pixels, of text drawn with the specified font and format.

Eccezioni

dc è null.dc is null.

Esempi

Nell'esempio seguente viene illustrato come utilizzare i metodi MeasureText e DrawText per disegnare una singola riga di testo in diversi stili di carattere.The following example demonstrates how to use the MeasureText and DrawText methods to draw a single line of text in different font styles. Per eseguire questo esempio, incollare il codice seguente in un Windows Form e chiamare DrawALineOfText dal gestore dell'evento Paint del form, passando e come PaintEventArgs.To run this example paste the following code in a Windows Form and call DrawALineOfText from the form's Paint event handler, passing e as 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 metodo MeasureText USA i parametri proposedSize e flags per indicare la relazione tra altezza e larghezza quando si determinano le dimensioni del testo.The MeasureText method uses the proposedSize and flags parameters to indicate the relationship of height to width when determining the text size. Quando si misura il testo su una sola riga, se il parametro proposedSize rappresenta un Size con una dimensione di altezza maggiore di Int32.MaxValue, il Size restituito verrà modificato in modo da riflettere l'altezza effettiva del testo.When measuring text on a single line, if the proposedSize parameter represents a Size with a height dimension greater than Int32.MaxValue, the returned Size will be adjusted to reflect the actual height of the text.

È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText che accetta un parametro TextFormatFlags.You can manipulate how the text is drawn by using one of the DrawText overloads that takes a TextFormatFlags parameter. 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.For example, the default behavior of the TextRenderer is to add padding to the bounding rectangle of the drawn text to accommodate overhanging glyphs. Se è necessario creare una riga di testo senza questi spazi aggiuntivi, usare le versioni di DrawText e MeasureText che accettano un parametro Size e TextFormatFlags, come illustrato nell'esempio.If you need to draw a line of text without these extra spaces, use the versions of DrawText and MeasureText that take a Size and TextFormatFlags parameter, as shown in the example.

Si applica a