TextRenderer.MeasureText Метод

Определение

Измеряет указанный текст при прорисовке с помощью указанного шрифта.

Перегрузки

MeasureText(String, Font, Size, TextFormatFlags)

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта и инструкций форматирования, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

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

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта и инструкций форматирования, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

MeasureText(IDeviceContext, String, Font, Size)

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта в заданном контексте устройства, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

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

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта в заданном контексте устройства, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

MeasureText(String, Font, Size)

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта, с использованием заданного размера для создания исходного ограничивающего прямоугольника.

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Предоставляет размер (в пикселях) указанного текста, отрисовываемого с помощью заданного шрифта в указанном контексте устройства.

MeasureText(IDeviceContext, String, Font)

Предоставляет размер (в пикселях) указанного текста, отрисовываемого с помощью заданного шрифта в указанном контексте устройства.

MeasureText(String, Font)

Предоставляет размер (в пикселях) указанного текста при отрисовке с помощью заданного шрифта.

MeasureText(ReadOnlySpan<Char>, Font)

Предоставляет размер (в пикселях) указанного текста при отрисовке с помощью заданного шрифта.

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

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанных значений контекста устройства, шрифта и инструкций форматирования, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

MeasureText(ReadOnlySpan<Char>, Font, Size)

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта, с использованием заданного размера для создания исходного ограничивающего прямоугольника.

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

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанных значений контекста устройства, шрифта и инструкций форматирования, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

MeasureText(String, Font, Size, TextFormatFlags)

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта и инструкций форматирования, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

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

Параметры

text
String

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

proposedSize
Size

Размер Size исходного ограничивающего прямоугольника.

flags
TextFormatFlags

Инструкции форматирования для применения к измеряемому тексту.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого с помощью задаваемых значений параметра font и формата.

Примеры

В следующем примере кода показано, как использовать один из MeasureText методов . Чтобы запустить этот пример, вставьте код в форму Windows Forms и вызовите DrawALineOfText из обработчика Paint событий формы, передав e как 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

Комментарии

MeasureTextproposedSize использует параметры и flags , чтобы указать отношение высоты к ширине при определении размера текста. При измерении текста в одной строке, если proposedSize параметр представляет объект с измерением высоты Size больше Int32.MaxValue, возвращаемый Size объект будет скорректирован в соответствии с фактической высотой текста.

Управлять прорисовкой текста можно с помощью одной из перегрузок метода DrawText, принимающей параметр TextFormatFlags. Например, поведение класса TextRenderer по умолчанию предполагает добавление внутренних полей в ограничивающий прямоугольник отображаемого текста с целью вместить в этот прямоугольник части глифов, выступающие за его границы. Если требуется прорисовать строку текста без этих дополнительных областей, следует использовать версии методов DrawText и MeasureText, которые принимают объект Size и параметр TextFormatFlags. Пример см. в разделе MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Примечание

Эта перегрузка MeasureText(String, Font, Size, TextFormatFlags) будет игнорировать TextFormatFlags значение NoPadding или LeftAndRightPadding. Если вы указываете значение заполнения, отличное от значения по умолчанию, следует использовать перегрузку MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) , которая принимает IDeviceContext объект .

Применяется к

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

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта и инструкций форматирования, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

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

Параметры

text
ReadOnlySpan<Char>

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

proposedSize
Size

Размер Size исходного ограничивающего прямоугольника.

flags
TextFormatFlags

Инструкции форматирования для применения к измеряемому тексту.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого с помощью задаваемых значений параметра font и формата.

Исключения

Свойство ModifyString задано.

Применяется к

MeasureText(IDeviceContext, String, Font, Size)

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта в заданном контексте устройства, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

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

Параметры

dc
IDeviceContext

Контекст устройства, в котором должен измеряться текст.

text
String

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

proposedSize
Size

Размер Size исходного ограничивающего прямоугольника.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого с помощью указанного параметра font.

Исключения

dc имеет значение null.

Примеры

В следующем примере кода показано, как использовать один из MeasureText методов . Чтобы запустить этот пример, вставьте код в форму Windows Forms и вызовите DrawALineOfText из обработчика Paint событий формы, передав e как 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

Комментарии

Метод MeasureText использует параметр , proposedSize чтобы указать отношение высоты к ширине при определении размера текста. При измерении текста в одной строке, если proposedSize параметр представляет объект с измерением высоты Size больше Int32.MaxValue, возвращаемый Size объект будет скорректирован в соответствии с фактической высотой текста.

Применяется к

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

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта в заданном контексте устройства, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

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

Параметры

dc
IDeviceContext

Контекст устройства, в котором должен измеряться текст.

text
ReadOnlySpan<Char>

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

proposedSize
Size

Размер Size исходного ограничивающего прямоугольника.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого с помощью указанного параметра font.

Исключения

dc имеет значение null.

Применяется к

MeasureText(String, Font, Size)

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта, с использованием заданного размера для создания исходного ограничивающего прямоугольника.

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

Параметры

text
String

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

proposedSize
Size

Размер Size исходного ограничивающего прямоугольника.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого с помощью указанного параметра font.

Примеры

В следующем примере кода показано, как использовать один из MeasureText методов . Чтобы запустить этот пример, вставьте код в форму Windows Forms и вызовите DrawALineOfText из обработчика Paint событий формы, передав e как 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

Комментарии

Метод MeasureText использует параметр , proposedSize чтобы указать отношение высоты к ширине при определении размера текста. При измерении текста в одной строке, если proposedSize параметр представляет объект с измерением высоты Size больше Int32.MaxValue, возвращаемый Size объект будет скорректирован в соответствии с фактической высотой текста.

Применяется к

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Предоставляет размер (в пикселях) указанного текста, отрисовываемого с помощью заданного шрифта в указанном контексте устройства.

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

Параметры

dc
IDeviceContext

Контекст устройства, в котором должен измеряться текст.

text
ReadOnlySpan<Char>

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

Возвращаемое значение

Размер Size (в пикселях) объекта text, прорисовываемого с помощью указанного параметра font в заданном контексте устройства.

Исключения

dc имеет значение null.

Применяется к

MeasureText(IDeviceContext, String, Font)

Предоставляет размер (в пикселях) указанного текста, отрисовываемого с помощью заданного шрифта в указанном контексте устройства.

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

Параметры

dc
IDeviceContext

Контекст устройства, в котором должен измеряться текст.

text
String

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого на одной строке с помощью указанного параметра font в заданном контексте устройства.

Примеры

В следующем примере кода показано, как использовать один из MeasureText методов . Чтобы запустить этот пример, вставьте код в форму Windows Forms и вызовите DrawALineOfText из обработчика Paint событий формы, передав e как 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

Комментарии

Метод MeasureText требует, чтобы текст был нарисован на одной строке.

Применяется к

MeasureText(String, 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);
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

Параметры

text
String

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого на одной строке с помощью задаваемого объекта font. Управлять прорисовкой текста можно с помощью одной из перегрузок метода DrawText(IDeviceContext, String, Font, Rectangle, Color, TextFormatFlags), принимающей параметр TextFormatFlags. Например, поведение класса TextRenderer по умолчанию предполагает добавление внутренних полей в ограничивающий прямоугольник отображаемого текста с целью вместить в этот прямоугольник части глифов, выступающие за его границы. Если требуется прорисовать строку текста без этих дополнительных областей, следует использовать версии методов DrawText(IDeviceContext, String, Font, Point, Color) и MeasureText(IDeviceContext, String, Font), которые принимают объект Size и параметр TextFormatFlags. Пример см. в разделе MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Примеры

В следующем примере кода показано, как использовать метод MeasureText. Чтобы запустить этот пример, вставьте код в форму Windows Forms и вызовите MeasureText1 из обработчика Paint событий формы, передав e как 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

Комментарии

Метод MeasureText требует, чтобы текст был нарисован на одной строке.

Применяется к

MeasureText(ReadOnlySpan<Char>, Font)

Предоставляет размер (в пикселях) указанного текста при отрисовке с помощью заданного шрифта.

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

Параметры

text
ReadOnlySpan<Char>

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

Возвращаемое значение

Размер Size текста (в пикселях), прорисовываемого в одной строке с использованием указанного шрифта. Управлять прорисовкой текста можно с помощью одной из перегрузок метода DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Rectangle, Color, TextFormatFlags), принимающей параметр TextFormatFlags. Например, поведение класса TextRenderer по умолчанию предполагает добавление внутренних полей в ограничивающий прямоугольник отображаемого текста с целью вместить в этот прямоугольник части глифов, выступающие за его границы. Если требуется прорисовать строку текста без этих дополнительных областей, следует использовать версии методов DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Point, Color) и MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font), которые принимают значение размера и параметр TextFormatFlags. Пример см. в разделе MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Применяется к

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

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанных значений контекста устройства, шрифта и инструкций форматирования, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

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

Параметры

dc
IDeviceContext

Контекст устройства, в котором должен измеряться текст.

text
ReadOnlySpan<Char>

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

proposedSize
Size

Размер Size исходного ограничивающего прямоугольника.

flags
TextFormatFlags

Инструкции форматирования для применения к измеряемому тексту.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого с помощью задаваемых значений параметра font и формата.

Исключения

dc имеет значение null.

Свойство ModifyString задано.

Применяется к

MeasureText(ReadOnlySpan<Char>, Font, Size)

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанного шрифта, с использованием заданного размера для создания исходного ограничивающего прямоугольника.

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

Параметры

text
ReadOnlySpan<Char>

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

proposedSize
Size

Размер Size исходного ограничивающего прямоугольника.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого с помощью указанного параметра font.

Применяется к

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

Предоставляет размер (в пикселях) указанного текста при его отрисовке с помощью указанных значений контекста устройства, шрифта и инструкций форматирования, с использованием заданного размера для создания исходного ограничивающего прямоугольника для текста.

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

Параметры

dc
IDeviceContext

Контекст устройства, в котором должен измеряться текст.

text
String

Текст для измерения.

font
Font

Объект Font для применения к измеряемому тексту.

proposedSize
Size

Размер Size исходного ограничивающего прямоугольника.

flags
TextFormatFlags

Инструкции форматирования для применения к измеряемому тексту.

Возвращаемое значение

Размер Size (в пикселях) объекта text, отрисовываемого с помощью задаваемых значений параметра font и формата.

Исключения

dc имеет значение null.

Примеры

В следующем примере показано, как использовать MeasureText методы и DrawText для рисования одной линии текста в разных стилях шрифтов. Чтобы выполнить этот пример, вставьте следующий код в Форму Windows Forms и вызовите DrawALineOfText из обработчика Paint событий формы, передавая e как 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

Комментарии

Метод MeasureText использует proposedSize параметры и flags , чтобы указать отношение высоты к ширине при определении размера текста. При измерении текста в одной строке, если proposedSize параметр представляет объект с размером высоты Size больше Int32.MaxValue, возвращаемый Size объект будет скорректирован в соответствии с фактической высотой текста.

Управлять прорисовкой текста можно с помощью одной из перегрузок метода DrawText, принимающей параметр TextFormatFlags. Например, поведение класса TextRenderer по умолчанию предполагает добавление внутренних полей в ограничивающий прямоугольник отображаемого текста с целью вместить в этот прямоугольник части глифов, выступающие за его границы. Если необходимо нарисовать текстовую линию без этих дополнительных пробелов, используйте версии DrawText и MeasureText , которые принимают Size параметр и TextFormatFlags , как показано в примере.

Применяется к