Compartilhar via


TextRenderer.MeasureText Método

Definição

Mede o texto especificado quando desenhado com a fonte especificada.

Sobrecargas

MeasureText(String, Font, Size, TextFormatFlags)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte e as instruções de formatação especificadas, usando o tamanho especificado para criar o retângulo delimitador inicial para o texto.

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

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte e as instruções de formatação especificadas, usando o tamanho especificado para criar o retângulo delimitador inicial para o texto.

MeasureText(IDeviceContext, String, Font, Size)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte no contexto de dispositivo especificado, usando o tamanho especificado para criar um retângulo delimitador inicial para o texto.

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

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte no contexto de dispositivo especificado, usando o tamanho especificado para criar um retângulo delimitador inicial para o texto.

MeasureText(String, Font, Size)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte especificada, usando o tamanho especificado para criar um retângulo delimitador inicial.

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Fornece o tamanho, em pixels, do texto especificado desenhado com a fonte especificada no contexto de dispositivo especificado.

MeasureText(IDeviceContext, String, Font)

Fornece o tamanho, em pixels, do texto especificado desenhado com a fonte especificada no contexto de dispositivo especificado.

MeasureText(String, Font)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte especificada.

MeasureText(ReadOnlySpan<Char>, Font)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte especificada.

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

Fornece o tamanho, em pixels, do texto especificado quando desenhado com as instruções de formatação, fonte e contexto do dispositivo especificadas, usando o tamanho especificado para criar o retângulo delimitador inicial para o texto.

MeasureText(ReadOnlySpan<Char>, Font, Size)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte especificada, usando o tamanho especificado para criar um retângulo delimitador inicial.

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

Fornece o tamanho, em pixels, do texto especificado quando desenhado com as instruções de formatação, fonte e contexto do dispositivo especificadas, usando o tamanho especificado para criar o retângulo delimitador inicial para o texto.

MeasureText(String, Font, Size, TextFormatFlags)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte e as instruções de formatação especificadas, usando o tamanho especificado para criar o retângulo delimitador inicial para o texto.

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

Parâmetros

text
String

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

proposedSize
Size

O Size do retângulo delimitador inicial.

flags
TextFormatFlags

As instruções de formatação que serão aplicadas ao texto medido.

Retornos

O Size, em pixels, do text desenhado com a font e o formato especificados.

Exemplos

O exemplo de código a seguir demonstra como usar um dos MeasureText métodos. Para executar este exemplo, cole o código em um Formulário do Windows e chame DrawALineOfText do manipulador de eventos do Paint formulário, passando e como 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

Comentários

MeasureText usa os proposedSize parâmetros e flags para indicar a relação de altura com largura ao determinar o tamanho do texto. Ao medir o texto em uma única linha, se o proposedSize parâmetro representar um Size com uma dimensão de altura maior que Int32.MaxValue, o retornado Size será ajustado para refletir a altura real do texto.

Você pode manipular como o texto é desenhado usando uma das sobrecargas DrawText que usa um parâmetro TextFormatFlags. Por exemplo, o comportamento padrão do TextRenderer é adicionar preenchimento ao retângulo delimitador do texto desenhado para acomodar glifos suspensos. Se você precisar desenhar uma linha de texto sem esses espaços extras, deverá usar as versões de DrawText e MeasureText que usam um parâmetro Size e TextFormatFlags. Para ver um exemplo, consulte MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Observação

Essa sobrecarga de MeasureText(String, Font, Size, TextFormatFlags) ignorará um TextFormatFlags valor de NoPadding ou LeftAndRightPadding. Se você estiver especificando um valor de preenchimento diferente do padrão, deverá usar a sobrecarga de MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) que usa um IDeviceContext objeto .

Aplica-se a

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

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte e as instruções de formatação especificadas, usando o tamanho especificado para criar o retângulo delimitador inicial para o texto.

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

Parâmetros

text
ReadOnlySpan<Char>

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

proposedSize
Size

O Size do retângulo delimitador inicial.

flags
TextFormatFlags

As instruções de formatação que serão aplicadas ao texto medido.

Retornos

O Size, em pixels, do text desenhado com a font e o formato especificados.

Exceções

Aplica-se a

MeasureText(IDeviceContext, String, Font, Size)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte no contexto de dispositivo especificado, usando o tamanho especificado para criar um retângulo delimitador inicial para o texto.

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

Parâmetros

dc
IDeviceContext

O contexto de dispositivo no qual medir o texto.

text
String

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

proposedSize
Size

O Size do retângulo delimitador inicial.

Retornos

O Size, em pixels, do text desenhado com a font especificada.

Exceções

dc é null.

Exemplos

O exemplo de código a seguir demonstra como usar um dos MeasureText métodos. Para executar este exemplo, cole o código em um Formulário do Windows e chame DrawALineOfText do manipulador de eventos do Paint formulário, passando e como 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

Comentários

O MeasureText método usa o proposedSize parâmetro para indicar a relação de altura com largura ao determinar o tamanho do texto. Ao medir o texto em uma única linha, se o proposedSize parâmetro representar um Size com uma dimensão de altura maior que Int32.MaxValue, o retornado Size será ajustado para refletir a altura real do texto.

Aplica-se a

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

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte no contexto de dispositivo especificado, usando o tamanho especificado para criar um retângulo delimitador inicial para o texto.

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

Parâmetros

dc
IDeviceContext

O contexto de dispositivo no qual medir o texto.

text
ReadOnlySpan<Char>

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

proposedSize
Size

O Size do retângulo delimitador inicial.

Retornos

O Size, em pixels, do text desenhado com a font especificada.

Exceções

dc é null.

Aplica-se a

MeasureText(String, Font, Size)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte especificada, usando o tamanho especificado para criar um retângulo delimitador inicial.

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

Parâmetros

text
String

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

proposedSize
Size

O Size do retângulo delimitador inicial.

Retornos

O Size, em pixels, do text desenhado com a font especificada.

Exemplos

O exemplo de código a seguir demonstra como usar um dos MeasureText métodos. Para executar este exemplo, cole o código em um Formulário do Windows e chame DrawALineOfText do manipulador de eventos do Paint formulário, passando e como 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

Comentários

O MeasureText método usa o proposedSize parâmetro para indicar a relação de altura com largura ao determinar o tamanho do texto. Ao medir o texto em uma única linha, se o proposedSize parâmetro representar um Size com uma dimensão de altura maior que Int32.MaxValue, o retornado Size será ajustado para refletir a altura real do texto.

Aplica-se a

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Fornece o tamanho, em pixels, do texto especificado desenhado com a fonte especificada no contexto de dispositivo especificado.

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

Parâmetros

dc
IDeviceContext

O contexto de dispositivo no qual medir o texto.

text
ReadOnlySpan<Char>

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

Retornos

O Size, em pixels, do text desenhado com o font especificado no contexto de dispositivo especificado.

Exceções

dc é null.

Aplica-se a

MeasureText(IDeviceContext, String, Font)

Fornece o tamanho, em pixels, do texto especificado desenhado com a fonte especificada no contexto de dispositivo especificado.

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

Parâmetros

dc
IDeviceContext

O contexto de dispositivo no qual medir o texto.

text
String

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

Retornos

O Size, em pixels, do text desenhado em uma única linha com o font especificado no contexto de dispositivo especificado.

Exemplos

O exemplo de código a seguir demonstra como usar um dos MeasureText métodos. Para executar este exemplo, cole o código em um Formulário do Windows e chame DrawALineOfText do manipulador de eventos do Paint formulário, passando e como 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

Comentários

O MeasureText método requer que o texto seja desenhado em uma única linha.

Aplica-se a

MeasureText(String, Font)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte especificada.

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

Parâmetros

text
String

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

Retornos

O Size, em pixels, do text desenhado em uma única linha com a font especificada. Você pode manipular como o texto é desenhado usando uma das sobrecargas DrawText(IDeviceContext, String, Font, Rectangle, Color, TextFormatFlags) que usa um parâmetro TextFormatFlags. Por exemplo, o comportamento padrão do TextRenderer é adicionar preenchimento ao retângulo delimitador do texto desenhado para acomodar glifos suspensos. Se você precisar desenhar uma linha de texto sem esses espaços extras, deverá usar as versões de DrawText(IDeviceContext, String, Font, Point, Color) e MeasureText(IDeviceContext, String, Font) que usam um parâmetro Size e TextFormatFlags. Para ver um exemplo, consulte MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Exemplos

O exemplo de código a seguir demonstra como usar o MeasureText método . Para executar este exemplo, cole o código em um Formulário do Windows e chame MeasureText1 do manipulador de eventos do Paint formulário, passando e como 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

Comentários

O MeasureText método requer que o texto seja desenhado em uma única linha.

Aplica-se a

MeasureText(ReadOnlySpan<Char>, Font)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte especificada.

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

Parâmetros

text
ReadOnlySpan<Char>

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

Retornos

O Size, em pixels, do texto desenhado em uma única linha com a fonte especificada. Você pode manipular como o texto é desenhado usando uma das sobrecargas DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Rectangle, Color, TextFormatFlags) que usa um parâmetro TextFormatFlags. Por exemplo, o comportamento padrão do TextRenderer é adicionar preenchimento ao retângulo delimitador do texto desenhado para acomodar glifos suspensos. Se você precisar desenhar uma linha de texto sem esses espaços extras, deverá usar as versões de DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Point, Color) e MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) que usam um parâmetro TextFormatFlags e Tamanho. Para ver um exemplo, consulte MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Aplica-se a

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

Fornece o tamanho, em pixels, do texto especificado quando desenhado com as instruções de formatação, fonte e contexto do dispositivo especificadas, usando o tamanho especificado para criar o retângulo delimitador inicial para o texto.

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

Parâmetros

dc
IDeviceContext

O contexto de dispositivo no qual medir o texto.

text
ReadOnlySpan<Char>

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

proposedSize
Size

O Size do retângulo delimitador inicial.

flags
TextFormatFlags

As instruções de formatação que serão aplicadas ao texto medido.

Retornos

O Size, em pixels, do text desenhado com a font e o formato especificados.

Exceções

dc é null.

Aplica-se a

MeasureText(ReadOnlySpan<Char>, Font, Size)

Fornece o tamanho, em pixels, do texto especificado quando desenhado com a fonte especificada, usando o tamanho especificado para criar um retângulo delimitador inicial.

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

Parâmetros

text
ReadOnlySpan<Char>

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

proposedSize
Size

O Size do retângulo delimitador inicial.

Retornos

O Size, em pixels, do text desenhado com a font especificada.

Aplica-se a

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

Fornece o tamanho, em pixels, do texto especificado quando desenhado com as instruções de formatação, fonte e contexto do dispositivo especificadas, usando o tamanho especificado para criar o retângulo delimitador inicial para o texto.

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

Parâmetros

dc
IDeviceContext

O contexto de dispositivo no qual medir o texto.

text
String

O texto a ser medido.

font
Font

A Font a ser aplicada ao texto medido.

proposedSize
Size

O Size do retângulo delimitador inicial.

flags
TextFormatFlags

As instruções de formatação que serão aplicadas ao texto medido.

Retornos

O Size, em pixels, do text desenhado com a font e o formato especificados.

Exceções

dc é null.

Exemplos

O exemplo a seguir demonstra como usar os MeasureText métodos e DrawText para desenhar uma única linha de texto em diferentes estilos de fonte. Para executar este exemplo, cole o código a seguir em um Formulário do Windows e chame DrawALineOfText do manipulador de eventos do Paint formulário, passando e como 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

Comentários

O MeasureText método usa os proposedSize parâmetros e flags para indicar a relação de altura com largura ao determinar o tamanho do texto. Ao medir o texto em uma única linha, se o proposedSize parâmetro representar um com uma Size dimensão de altura maior que Int32.MaxValue, o retornado Size será ajustado para refletir a altura real do texto.

Você pode manipular como o texto é desenhado usando uma das sobrecargas DrawText que usa um parâmetro TextFormatFlags. Por exemplo, o comportamento padrão do TextRenderer é adicionar preenchimento ao retângulo delimitador do texto desenhado para acomodar glifos suspensos. Se você precisar desenhar uma linha de texto sem esses espaços extras, use as versões de DrawText e MeasureText que usam um Size parâmetro e TextFormatFlags , conforme mostrado no exemplo.

Aplica-se a