Graphics.MeasureString Метод

Определение

Измеряет указанную строку в процессе ее создания с помощью заданного объекта Font.

Перегрузки

MeasureString(String, Font)

Измеряет указанную строку в процессе ее создания с помощью заданного объекта Font.

MeasureString(String, Font, SizeF)

Измеряет указанную строку в процессе ее создания с заданным шрифтом Font в пределах заданной области макета.

MeasureString(String, Font, Int32)

Измеряет указанную строку в процессе ее создания с помощью заданного объекта Font.

MeasureString(String, Font, PointF, StringFormat)

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

MeasureString(String, Font, SizeF, StringFormat)

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

MeasureString(String, Font, Int32, StringFormat)

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

MeasureString(String, Font, SizeF, StringFormat, Int32, Int32)

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

MeasureString(String, Font)

Измеряет указанную строку в процессе ее создания с помощью заданного объекта Font.

public:
 System::Drawing::SizeF MeasureString(System::String ^ text, System::Drawing::Font ^ font);
public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font);
public System.Drawing.SizeF MeasureString (string? text, System.Drawing.Font font);
member this.MeasureString : string * System.Drawing.Font -> System.Drawing.SizeF
Public Function MeasureString (text As String, font As Font) As SizeF

Параметры

text
String

Строка для измерения.

font
Font

Объект Font, определяющий формат текста строки.

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

SizeF

Этот метод возвращает структуру SizeF, представляющую размер в единицах, задаваемых свойством PageUnit, для строки, которая определяется параметром text в процессе рисования с использованием шрифта font.

Исключения

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

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требуется PaintEventArgs e, что является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает строку для измерения.

  • Создает объект шрифта и задает для него значение Arial (16 точек).

  • Создает объект size и использует его и объект шрифта для измерения размера строки.

  • Рисует красный прямоугольник с помощью измеренного размера строки.

  • Рисует строку в прямоугольнике.

public:
   void MeasureStringMin( PaintEventArgs^ e )
   {
      // Set up string.
      String^ measureString = "Measure String";
      System::Drawing::Font^ stringFont = gcnew System::Drawing::Font( "Arial",16 );

      // Measure string.
      SizeF stringSize = e->Graphics->MeasureString( measureString, stringFont );

      // Draw rectangle representing size of string.
      e->Graphics->DrawRectangle( gcnew Pen( Color::Red,1.0f ), 0.0F, 0.0F, stringSize.Width, stringSize.Height );

      // Draw string to screen.
      e->Graphics->DrawString( measureString, stringFont, Brushes::Black, PointF(0,0) );
   }
private void MeasureStringMin(PaintEventArgs e)
{

    // Set up string.
    string measureString = "Measure String";
    Font stringFont = new Font("Arial", 16);

    // Measure string.
    SizeF stringSize = new SizeF();
    stringSize = e.Graphics.MeasureString(measureString, stringFont);

    // Draw rectangle representing size of string.
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);

    // Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0));
}
Private Sub MeasureStringMin(ByVal e As PaintEventArgs)

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

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

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

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

Комментарии

Этот MeasureString метод предназначен для использования с отдельными строками и включает небольшое количество дополнительного пространства до и после строки, чтобы разрешить нависания глифов. Кроме того, DrawString метод настраивает точки глифа для оптимизации качества отображения и может отображать строковый сужающийся, чем сообщается MeasureString. Чтобы получить метрики, подходящие для смежных строк в макете (например, при реализации форматированного текста), используйте MeasureCharacterRanges метод или один из MeasureString методов, которые принимают StringFormatи передают GenericTypographic. Кроме того, убедитесь TextRenderingHint , что для Graphics параметра is AntiAlias.

См. также раздел

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

MeasureString(String, Font, SizeF)

Измеряет указанную строку в процессе ее создания с заданным шрифтом Font в пределах заданной области макета.

public:
 System::Drawing::SizeF MeasureString(System::String ^ text, System::Drawing::Font ^ font, System::Drawing::SizeF layoutArea);
public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea);
public System.Drawing.SizeF MeasureString (string? text, System.Drawing.Font font, System.Drawing.SizeF layoutArea);
member this.MeasureString : string * System.Drawing.Font * System.Drawing.SizeF -> System.Drawing.SizeF
Public Function MeasureString (text As String, font As Font, layoutArea As SizeF) As SizeF

Параметры

text
String

Строка для измерения.

font
Font

Объект Font определяет формат текстовой строки.

layoutArea
SizeF

Структура SizeF, которая задает максимальную область размещения для текста.

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

SizeF

Этот метод возвращает структуру SizeF, представляющую размер в единицах, задаваемых свойством PageUnit, для строки, которая определяется параметром text в процессе рисования с использованием шрифта font.

Исключения

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

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требуется PaintEventArgs e, что является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает строку для измерения и объекта шрифта, заданного как Arial (16 точек).

  • Задает максимальный размер макета строки.

  • Создает объект размера и использует его, объект шрифта и максимальный размер макета для измерения размера строки.

  • Рисует красный прямоугольник с помощью измеренного размера строки.

  • Рисует строку в прямоугольнике.

public:
   void MeasureStringSizeF( PaintEventArgs^ e )
   {

      // Set up string.
      String^ measureString = "Measure String";
      System::Drawing::Font^ stringFont = gcnew System::Drawing::Font( "Arial",16 );

      // Set maximum layout size.
      SizeF layoutSize = SizeF(200.0F,50.0F);

      // Measure string.
      SizeF stringSize = e->Graphics->MeasureString( measureString, stringFont, layoutSize );

      // Draw rectangle representing size of string.
      e->Graphics->DrawRectangle( gcnew Pen( Color::Red,1.0f ), 0.0F, 0.0F, stringSize.Width, stringSize.Height );

      // Draw string to screen.
      e->Graphics->DrawString( measureString, stringFont, Brushes::Black, PointF(0,0) );
   }
private void MeasureStringSizeF(PaintEventArgs e)
{

    // Set up string.
    string measureString = "Measure String";
    Font stringFont = new Font("Arial", 16);

    // Set maximum layout size.
    SizeF layoutSize = new SizeF(200.0F, 50.0F);

    // Measure string.
    SizeF stringSize = new SizeF();
    stringSize = e.Graphics.MeasureString(measureString, stringFont, layoutSize);

    // Draw rectangle representing size of string.
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);

    // Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0));
}
Private Sub MeasureStringSizeF(ByVal e As PaintEventArgs)

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

    ' Set maximum layout size.
    Dim layoutSize As New SizeF(200.0F, 50.0F)

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

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

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

Комментарии

Этот MeasureString метод предназначен для использования с отдельными строками и включает небольшое количество дополнительного пространства до и после строки, чтобы разрешить нависания глифов. Кроме того, DrawString метод настраивает точки глифа для оптимизации качества отображения и может отображать строковый сужающийся, чем сообщается MeasureString. Чтобы получить метрики, подходящие для смежных строк в макете (например, при реализации форматированного текста), используйте MeasureCharacterRanges метод или один из MeasureString методов, которые принимают StringFormatи передают GenericTypographic. Кроме того, убедитесь TextRenderingHint , что для Graphics параметра is AntiAlias.

См. также раздел

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

MeasureString(String, Font, Int32)

Измеряет указанную строку в процессе ее создания с помощью заданного объекта Font.

public:
 System::Drawing::SizeF MeasureString(System::String ^ text, System::Drawing::Font ^ font, int width);
public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, int width);
public System.Drawing.SizeF MeasureString (string? text, System.Drawing.Font font, int width);
member this.MeasureString : string * System.Drawing.Font * int -> System.Drawing.SizeF
Public Function MeasureString (text As String, font As Font, width As Integer) As SizeF

Параметры

text
String

Строка для измерения.

font
Font

Объект Font, определяющий формат текстовой строки.

width
Int32

Максимальная ширина строки (в пикселях).

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

SizeF

Этот метод возвращает структуру SizeF, представляющую размер в единицах, задаваемых свойством PageUnit для строки, которая определяется параметром text в процессе рисования с использованием шрифта font.

Исключения

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

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требуется PaintEventArgs e, что является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает строку для измерения и объекта шрифта, заданного как Arial (16 точек).

  • Задает максимальную ширину строки.

  • Создает объект size и использует его, объект шрифта и максимальную ширину строки для измерения размера строки.

  • Рисует красный прямоугольник с помощью измеренного размера строки.

  • Рисует строку в прямоугольнике.

public:
   void MeasureStringWidth( PaintEventArgs^ e )
   {
      // Set up string.
      String^ measureString = "Measure String";
      System::Drawing::Font^ stringFont = gcnew System::Drawing::Font( "Arial",16 );

      // Set maximum width of string.
      int stringWidth = 200;

      // Measure string.
      SizeF stringSize = e->Graphics->MeasureString( measureString, stringFont, stringWidth );

      // Draw rectangle representing size of string.
      e->Graphics->DrawRectangle( gcnew Pen( Color::Red,1.0f ), 0.0F, 0.0F, stringSize.Width, stringSize.Height );

      // Draw string to screen.
      e->Graphics->DrawString( measureString, stringFont, Brushes::Black, PointF(0,0) );
   }
private void MeasureStringWidth(PaintEventArgs e)
{

    // Set up string.
    string measureString = "Measure String";
    Font stringFont = new Font("Arial", 16);

    // Set maximum width of string.
    int stringWidth = 200;

    // Measure string.
    SizeF stringSize = new SizeF();
    stringSize = e.Graphics.MeasureString(measureString, stringFont, stringWidth);

    // Draw rectangle representing size of string.
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);

    // Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0));
}
Private Sub MeasureStringWidth(ByVal e As PaintEventArgs)

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

    ' Set maximum width of string.
    Dim stringWidth As Integer = 200

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

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

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

Комментарии

Параметр width задает максимальное значение компонента ширины возвращаемой SizeF структуры (Width). width Если параметр меньше фактической ширины строки, возвращаемый Width компонент усечен до значения, представляющего максимальное количество символов, которое будет соответствовать указанной ширине. Чтобы вместить всю строку, возвращаемый Height компонент настраивается на значение, которое позволяет отображать строку с переносом символов.

Этот MeasureString метод предназначен для использования с отдельными строками и включает небольшое количество дополнительного пространства до и после строки, чтобы разрешить нависания глифов. Кроме того, DrawString метод настраивает точки глифа для оптимизации качества отображения и может отображать строковый сужающийся, чем сообщается MeasureString. Чтобы получить метрики, подходящие для смежных строк в макете (например, при реализации форматированного текста), используйте MeasureCharacterRanges метод или один из MeasureString методов, которые принимают StringFormatи передают GenericTypographic. Кроме того, убедитесь TextRenderingHint , что для Graphics параметра is AntiAlias.

См. также раздел

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

MeasureString(String, Font, PointF, StringFormat)

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

public:
 System::Drawing::SizeF MeasureString(System::String ^ text, System::Drawing::Font ^ font, System::Drawing::PointF origin, System::Drawing::StringFormat ^ stringFormat);
public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, System.Drawing.PointF origin, System.Drawing.StringFormat stringFormat);
public System.Drawing.SizeF MeasureString (string? text, System.Drawing.Font font, System.Drawing.PointF origin, System.Drawing.StringFormat? stringFormat);
member this.MeasureString : string * System.Drawing.Font * System.Drawing.PointF * System.Drawing.StringFormat -> System.Drawing.SizeF
Public Function MeasureString (text As String, font As Font, origin As PointF, stringFormat As StringFormat) As SizeF

Параметры

text
String

Строка для измерения.

font
Font

Объект Font определяет формат текстовой строки.

origin
PointF

Структура PointF, представляющая расположение верхнего левого угла строки.

stringFormat
StringFormat

Объект StringFormat, представляющий сведения о форматировании для строки, например межстрочный интервал.

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

SizeF

Этот метод возвращает структуру SizeF, представляющую размер в единицах, задаваемых свойством PageUnit, для строки, которая определяется параметром text при отображении с шрифтом font и форматом stringFormat.

Исключения

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

Примеры

В следующем примере кода используется Windows Forms и требуется PaintEventArgs eпараметр обработчика Paint событий. Код выполняет следующие действия.

  • Создает строку для измерения и объекта шрифта, заданного значением Arial (16 точек)

  • Создает точку для поиска верхнего левого угла строки.

  • Создает объект формата строки и задает для его флагов DirectionVerticalформата значение .

  • Создает объект size для измерения строки.

  • Измеряет размер строки, используя строку, объект шрифта, точку поиска и формат строки.

  • Рисует красный прямоугольник, используя точку поиска и измеренный размер строки.

  • Рисует строку в прямоугольнике рисования.

Результатом является вертикальный прямоугольник, заключающий вертикальную строку.

public:
   void MeasureStringPointFFormat( PaintEventArgs^ e )
   {

      // Set up string.
      String^ measureString = "Measure String";
      System::Drawing::Font^ stringFont = gcnew System::Drawing::Font( "Arial",16 );

      // Set point for upper-left corner of string.
      float x = 50.0F;
      float y = 50.0F;
      PointF ulCorner = PointF(x,y);

      // Set string format.
      StringFormat^ newStringFormat = gcnew StringFormat;
      newStringFormat->FormatFlags = StringFormatFlags::DirectionVertical;

      // Measure string.
      SizeF stringSize = e->Graphics->MeasureString( measureString, stringFont, ulCorner, newStringFormat );

      // Draw rectangle representing size of string.
      e->Graphics->DrawRectangle( gcnew Pen( Color::Red,1.0f ), x, y, stringSize.Width, stringSize.Height );

      // Draw string to screen.
      e->Graphics->DrawString( measureString, stringFont, Brushes::Black, ulCorner, newStringFormat );
   }
private void MeasureStringPointFFormat(PaintEventArgs e)
{

    // Set up string.
    string measureString = "Measure String";
    Font stringFont = new Font("Arial", 16);

    // Set point for upper-left corner of string.
    float x = 50.0F;
    float y = 50.0F;
    PointF ulCorner = new PointF(x, y);

    // Set string format.
    StringFormat newStringFormat = new StringFormat();
    newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical;

    // Measure string.
    SizeF stringSize = new SizeF();
    stringSize = e.Graphics.MeasureString(measureString, stringFont, ulCorner, newStringFormat);

    // Draw rectangle representing size of string.
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), x, y, stringSize.Width, stringSize.Height);

    // Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, ulCorner, newStringFormat);
}
Private Sub MeasureStringPointFFormat(ByVal e As PaintEventArgs)

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

    ' Set point for upper-left corner of string.
    Dim x As Single = 50.0F
    Dim y As Single = 50.0F
    Dim ulCorner As New PointF(x, y)

    ' Set string format.
    Dim newStringFormat As New StringFormat
    newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical

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

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

    ' Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, _
    ulCorner, newStringFormat)
End Sub

Комментарии

Этот MeasureString метод предназначен для использования с отдельными строками и включает небольшое количество дополнительного пространства до и после строки, чтобы разрешить нависания глифов. Кроме того, DrawString метод корректирует точки глифа для оптимизации качества отображения и может отображать строку сузительнее, чем сообщалось MeasureString. Чтобы получить метрики, подходящие для смежных строк в макете (например, при реализации форматированного текста), используйте MeasureCharacterRanges метод или один из MeasureString методов, которые принимают StringFormatи передают GenericTypographic. Кроме того, убедитесь, что TextRenderingHint для этого Graphics есть AntiAlias.

См. также раздел

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

MeasureString(String, Font, SizeF, StringFormat)

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

public:
 System::Drawing::SizeF MeasureString(System::String ^ text, System::Drawing::Font ^ font, System::Drawing::SizeF layoutArea, System::Drawing::StringFormat ^ stringFormat);
public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat stringFormat);
public System.Drawing.SizeF MeasureString (string? text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat? stringFormat);
member this.MeasureString : string * System.Drawing.Font * System.Drawing.SizeF * System.Drawing.StringFormat -> System.Drawing.SizeF
Public Function MeasureString (text As String, font As Font, layoutArea As SizeF, stringFormat As StringFormat) As SizeF

Параметры

text
String

Строка для измерения.

font
Font

Объект Font определяет формат текстовой строки.

layoutArea
SizeF

Структура SizeF, которая задает максимальную область размещения для текста.

stringFormat
StringFormat

Объект StringFormat, представляющий сведения о форматировании для строки, например межстрочный интервал.

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

SizeF

Этот метод возвращает структуру SizeF, представляющую размер в единицах, задаваемых свойством PageUnit, для строки, которая определяется параметром text при отображении с шрифтом font и форматом stringFormat.

Исключения

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

Примеры

В следующем примере кода используется Windows Forms и требуется PaintEventArgs eпараметр обработчика Paint событий. Код выполняет следующие действия.

  • Создает строку для измерения, а объект шрифта — Arial (16 точек).

  • Задает максимальный размер макета строки, создав объект размера для измерения строки.

  • Создает объект формата строки и задает для его флагов DirectionVerticalформата значение .

  • Измеряет размер строки, используя строку, объект шрифта, максимальный размер макета и формат строки.

  • Рисует красный прямоугольник, используя измеренный размер строки.

  • Рисует строку в прямоугольнике рисования.

Результатом является вертикальный прямоугольник, заключающий вертикальную строку.

public:
   void MeasureStringSizeFFormat( PaintEventArgs^ e )
   {
      // Set up string.
      String^ measureString = "Measure String";
      System::Drawing::Font^ stringFont = gcnew System::Drawing::Font( "Arial",16 );

      // Set maximum layout size.
      SizeF layoutSize = SizeF(100.0F,200.0F);

      // Set string format.
      StringFormat^ newStringFormat = gcnew StringFormat;
      newStringFormat->FormatFlags = StringFormatFlags::DirectionVertical;

      // Measure string.
      SizeF stringSize = e->Graphics->MeasureString( measureString, stringFont, layoutSize, newStringFormat );

      // Draw rectangle representing size of string.
      e->Graphics->DrawRectangle( gcnew Pen( Color::Red,1.0f ), 0.0F, 0.0F, stringSize.Width, stringSize.Height );

      // Draw string to screen.
      e->Graphics->DrawString( measureString, stringFont, Brushes::Black, PointF(0,0), newStringFormat );
   }
private void MeasureStringSizeFFormat(PaintEventArgs e)
{

    // Set up string.
    string measureString = "Measure String";
    Font stringFont = new Font("Arial", 16);

    // Set maximum layout size.
    SizeF layoutSize = new SizeF(100.0F, 200.0F);

    // Set string format.
    StringFormat newStringFormat = new StringFormat();
    newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical;

    // Measure string.
    SizeF stringSize = new SizeF();
    stringSize = e.Graphics.MeasureString(measureString, stringFont, layoutSize, newStringFormat);

    // Draw rectangle representing size of string.
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);

    // Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0), newStringFormat);
}
Private Sub MeasureStringSizeFFormat(ByVal e As PaintEventArgs)

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

    ' Set maximum layout size.
    Dim layoutSize As New SizeF(100.0F, 200.0F)

    ' Set string format.
    Dim newStringFormat As New StringFormat
    newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical

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

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

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

Комментарии

Этот MeasureString метод предназначен для использования с отдельными строками и включает небольшое количество дополнительного пространства до и после строки, чтобы разрешить нависания глифов. Кроме того, DrawString метод корректирует точки глифа для оптимизации качества отображения и может отображать строку сузительнее, чем сообщалось MeasureString. Чтобы получить метрики, подходящие для смежных строк в макете (например, при реализации форматированного текста), используйте MeasureCharacterRanges метод или один из MeasureString методов, которые принимают StringFormatи передают GenericTypographic. Кроме того, убедитесь, что TextRenderingHint для этого Graphics есть AntiAlias.

См. также раздел

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

MeasureString(String, Font, Int32, StringFormat)

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

public:
 System::Drawing::SizeF MeasureString(System::String ^ text, System::Drawing::Font ^ font, int width, System::Drawing::StringFormat ^ format);
public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, int width, System.Drawing.StringFormat format);
public System.Drawing.SizeF MeasureString (string? text, System.Drawing.Font font, int width, System.Drawing.StringFormat? format);
member this.MeasureString : string * System.Drawing.Font * int * System.Drawing.StringFormat -> System.Drawing.SizeF
Public Function MeasureString (text As String, font As Font, width As Integer, format As StringFormat) As SizeF

Параметры

text
String

Строка для измерения.

font
Font

Объект Font, определяющий формат текста строки.

width
Int32

Максимальная ширина строки.

format
StringFormat

Объект StringFormat, представляющий сведения о форматировании для строки, например межстрочный интервал.

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

SizeF

Этот метод возвращает структуру SizeF, представляющую размер в единицах, задаваемых свойством PageUnit, для строки, которая определяется параметром text при отображении с шрифтом font и форматом stringFormat.

Исключения

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

Примеры

В следующем примере кода используется Windows Forms и требуется PaintEventArgs eпараметр обработчика Paint событий. Код выполняет следующие действия.

  • Создает строку для измерения и объект шрифта, задал ему значение Arial (16 точек).

  • Задает максимальную ширину строки.

  • Создает объект формата строки и задает для его флагов DirectionVerticalформата значение .

  • Создает объект size для измерения строки.

  • Измеряет размер строки, используя строку, объект шрифта, максимальную ширину и формат строки.

  • Рисует красный прямоугольник, используя измеренный размер строки.

  • Рисует строку в прямоугольнике рисования.

Результатом является вертикальный прямоугольник, заключающий вертикальную строку.

public:
   void MeasureStringWidthFormat( PaintEventArgs^ e )
   {
      // Set up string.
      String^ measureString = "Measure String";
      System::Drawing::Font^ stringFont = gcnew System::Drawing::Font( "Arial",16 );

      // Set maximum width of string.
      int stringWidth = 100;

      // Set string format.
      StringFormat^ newStringFormat = gcnew StringFormat;
      newStringFormat->FormatFlags = StringFormatFlags::DirectionVertical;

      // Measure string.
      SizeF stringSize = e->Graphics->MeasureString( measureString, stringFont, stringWidth, newStringFormat );

      // Draw rectangle representing size of string.
      e->Graphics->DrawRectangle( gcnew Pen( Color::Red,1.0f ), 0.0F, 0.0F, stringSize.Width, stringSize.Height );

      // Draw string to screen.
      e->Graphics->DrawString( measureString, stringFont, Brushes::Black, PointF(0,0), newStringFormat );
   }
private void MeasureStringWidthFormat(PaintEventArgs e)
{

    // Set up string.
    string measureString = "Measure String";
    Font stringFont = new Font("Arial", 16);

    // Set maximum width of string.
    int stringWidth = 100;

    // Set string format.
    StringFormat newStringFormat = new StringFormat();
    newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical;

    // Measure string.
    SizeF stringSize = new SizeF();
    stringSize = e.Graphics.MeasureString(measureString, stringFont, stringWidth, newStringFormat);

    // Draw rectangle representing size of string.
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);

    // Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0), newStringFormat);
}
Private Sub MeasureStringWidthFormat(ByVal e As PaintEventArgs)

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

    ' Set maximum width of string.
    Dim stringWidth As Integer = 100

    ' Set string format.
    Dim newStringFormat As New StringFormat
    newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical

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

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

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

Комментарии

Этот MeasureString метод предназначен для использования с отдельными строками и включает небольшое количество дополнительного пространства до и после строки, чтобы разрешить нависания глифов. Кроме того, DrawString метод корректирует точки глифа для оптимизации качества отображения и может отображать строку сузительнее, чем сообщалось MeasureString. Чтобы получить метрики, подходящие для смежных строк в макете (например, при реализации форматированного текста), используйте MeasureCharacterRanges метод или один из MeasureString методов, которые принимают StringFormatи передают GenericTypographic. Кроме того, убедитесь, что TextRenderingHint для этого Graphics есть AntiAlias.

См. также раздел

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

MeasureString(String, Font, SizeF, StringFormat, Int32, Int32)

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

public:
 System::Drawing::SizeF MeasureString(System::String ^ text, System::Drawing::Font ^ font, System::Drawing::SizeF layoutArea, System::Drawing::StringFormat ^ stringFormat, [Runtime::InteropServices::Out] int % charactersFitted, [Runtime::InteropServices::Out] int % linesFilled);
public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat stringFormat, out int charactersFitted, out int linesFilled);
public System.Drawing.SizeF MeasureString (string? text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat? stringFormat, out int charactersFitted, out int linesFilled);
member this.MeasureString : string * System.Drawing.Font * System.Drawing.SizeF * System.Drawing.StringFormat * int * int -> System.Drawing.SizeF
Public Function MeasureString (text As String, font As Font, layoutArea As SizeF, stringFormat As StringFormat, ByRef charactersFitted As Integer, ByRef linesFilled As Integer) As SizeF

Параметры

text
String

Строка для измерения.

font
Font

Объект Font, определяющий формат текста строки.

layoutArea
SizeF

Структура SizeF, которая задает максимальную область размещения для текста.

stringFormat
StringFormat

Объект StringFormat, представляющий сведения о форматировании для строки, например межстрочный интервал.

charactersFitted
Int32

Количество знаков в строке.

linesFilled
Int32

Количество строк текста в строке.

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

SizeF

Этот метод возвращает структуру SizeF, представляющую размер строки, в единицах, задаваемых свойством PageUnit параметра text, при отображении с использованием шрифта font и формата stringFormat.

Исключения

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

Примеры

В следующем примере кода используется Windows Forms и требуется PaintEventArgs eпараметр обработчика Paint событий. Код выполняет следующие действия.

  • Создает строку для измерения и объекта шрифта, заданного значением Arial (16 точек)

  • Задает максимальный размер макета строки.

  • Создает объект формата строки и задает для его флагов DirectionVerticalформата значение .

  • Создает целые переменные charactersFitted и linesFilled объект размера для измерения строки.

  • Измеряет размер строки и определяет количество символов, заполненных и заполненных строк, используя строку, объект шрифта, максимальный размер макета и формат строки.

  • Рисует красный прямоугольник, используя измеренный размер строки.

  • Рисует строку в прямоугольнике рисования.

  • Рисует значения числа символов, заполненных и заполненных линий.

Результатом является вертикальный прямоугольник, заключающий вертикальную строку.

public:
   void MeasureStringSizeFFormatInts( PaintEventArgs^ e )
   {
      // Set up string.
      String^ measureString = "Measure String";
      System::Drawing::Font^ stringFont = gcnew System::Drawing::Font( "Arial",16 );

      // Set maximum layout size.
      SizeF layoutSize = SizeF(100.0F,200.0F);

      // Set string format.
      StringFormat^ newStringFormat = gcnew StringFormat;
      newStringFormat->FormatFlags = StringFormatFlags::DirectionVertical;

      // Measure string.
      int charactersFitted;
      int linesFilled;
      SizeF stringSize = e->Graphics->MeasureString( measureString, stringFont, layoutSize, newStringFormat, charactersFitted, linesFilled );

      // Draw rectangle representing size of string.
      e->Graphics->DrawRectangle( gcnew Pen( Color::Red,1.0f ), 0.0F, 0.0F, stringSize.Width, stringSize.Height );

      // Draw string to screen.
      e->Graphics->DrawString( measureString, stringFont, Brushes::Black, PointF(0,0), newStringFormat );

      // Draw output parameters to screen.
      String^ outString = String::Format( "chars {0}, lines {1}", charactersFitted, linesFilled );
      e->Graphics->DrawString( outString, stringFont, Brushes::Black, PointF(100,0) );
   }
private void MeasureStringSizeFFormatInts(PaintEventArgs e)
{

    // Set up string.
    string measureString = "Measure String";
    Font stringFont = new Font("Arial", 16);

    // Set maximum layout size.
    SizeF layoutSize = new SizeF(100.0F, 200.0F);

    // Set string format.
    StringFormat newStringFormat = new StringFormat();
    newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical;

    // Measure string.
    int charactersFitted;
    int linesFilled;
    SizeF stringSize = new SizeF();
    stringSize = e.Graphics.MeasureString(measureString, stringFont, layoutSize, newStringFormat, out charactersFitted, out linesFilled);

    // Draw rectangle representing size of string.
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);

    // Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0), newStringFormat);

    // Draw output parameters to screen.
    string outString = "chars " + charactersFitted + ", lines " + linesFilled;
    e.Graphics.DrawString(outString, stringFont, Brushes.Black, new PointF(100, 0));
}
Private Sub MeasureStringSizeFFormatInts(ByVal e As PaintEventArgs)

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

    ' Set maximum layout size.
    Dim layoutSize As New SizeF(100.0F, 200.0F)

    ' Set string format.
    Dim newStringFormat As New StringFormat
    newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical

    ' Measure string.
    Dim charactersFitted As Integer
    Dim linesFilled As Integer
    Dim stringSize As New SizeF
    stringSize = e.Graphics.MeasureString(measureString, stringFont, _
    layoutSize, newStringFormat, charactersFitted, linesFilled)

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

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

    ' Draw output parameters to screen.
    Dim outString As String = "chars " & charactersFitted & _
    ", lines " & linesFilled
    e.Graphics.DrawString(outString, stringFont, Brushes.Black, _
    New PointF(100, 0))
End Sub

Комментарии

Этот MeasureString метод предназначен для использования с отдельными строками и включает небольшое количество дополнительного пространства до и после строки, чтобы разрешить нависания глифов. Кроме того, DrawString метод корректирует точки глифа для оптимизации качества отображения и может отображать строку сузительнее, чем сообщалось MeasureString. Чтобы получить метрики, подходящие для смежных строк в макете (например, при реализации форматированного текста), используйте MeasureCharacterRanges метод или один из MeasureString методов, которые принимают StringFormat и передают GenericTypographic. Кроме того, убедитесь, что TextRenderingHint для этого Graphics есть AntiAlias.

См. также раздел

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