Graphics.MeasureString Graphics.MeasureString Graphics.MeasureString Method

定義

指定した Font で描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font.

オーバーロード

MeasureString(String, Font) MeasureString(String, Font) MeasureString(String, Font)

指定した Font で描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font.

MeasureString(String, Font, SizeF) MeasureString(String, Font, SizeF) MeasureString(String, Font, SizeF)

指定したレイアウト領域内に指定した Font で描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font within the specified layout area.

MeasureString(String, Font, Int32) MeasureString(String, Font, Int32) MeasureString(String, Font, Int32)

指定した Font で描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font.

MeasureString(String, Font, PointF, StringFormat) MeasureString(String, Font, PointF, StringFormat) MeasureString(String, Font, PointF, StringFormat)

指定した Font を使用し、指定した StringFormat で書式指定して描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font and formatted with the specified StringFormat.

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

指定した Font を使用し、指定した StringFormat で書式指定して描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font and formatted with the specified StringFormat.

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

指定した Font を使用し、指定した StringFormat で書式指定して描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font and formatted with the specified StringFormat.

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

指定した Font を使用し、指定した StringFormat で書式指定して描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font and formatted with the specified StringFormat.

MeasureString(String, Font) MeasureString(String, Font) MeasureString(String, Font)

指定した Font で描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font.

public:
 System::Drawing::SizeF MeasureString(System::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

パラメーター

text
String String String

計測する文字列。String to measure.

font
Font Font Font

文字列のテキスト形式を定義する FontFont that defines the text format of the string.

戻り値

このメソッドは、text パラメーターに指定された文字列のサイズを SizeF プロパティで指定された単位で表す PageUnit 構造体を、font パラメーターで描画されたとおりに返します。This method returns a SizeF structure that represents the size, in the units specified by the PageUnit property, of the string specified by the text parameter as drawn with the font parameter.

例外

fontnullです。font is null.

次のコード例は、Windows フォームで使用するように設計さPaintEventArgsれています。これはPaint 、イベントハンドラーのパラメーターであるを必要eとします。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. コードは、次のアクションを実行します。The code performs the following actions:

  • 測定する文字列を作成します。Creates a string to measure.

  • フォントオブジェクトを作成し、Arial (16 ポイント) に設定します。Creates a font object and sets it to Arial (16 point).

  • サイズオブジェクトを作成し、それを使用して、文字列のサイズを測定します。Creates a size object and uses it and the font object to measure the size of the string.

  • 文字列の測定されたサイズを使用して、赤い四角形を描画します。Draws a red rectangle using the measured size of the string.

  • 描画された四角形内に文字列を描画します。Draws the string within the drawn rectangle.

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は、個々の文字列と共に使用するように設計されており、グリフの突出を許容する文字列の前後に少量の余分なスペースが含まれています。The MeasureString method is designed for use with individual strings and includes a small amount of extra space before and after the string to allow for overhanging glyphs. また、メソッドDrawStringは、グリフポイントを調整して表示品質を最適化します。また、 MeasureStringによって報告された文字列の幅が狭くなることもあります。Also, the DrawString method adjusts glyph points to optimize display quality and might display a string narrower than reported by MeasureString. レイアウト内の隣接する文字列に適したメトリックを取得するには (書式設定されたMeasureCharacterRangesテキストを実装する場合MeasureStringなど)、メソッド、またはGenericTypographicを受け取るStringFormatメソッドの1つを使用して、を渡します。To obtain metrics suitable for adjacent strings in layout (for example, when implementing formatted text), use the MeasureCharacterRanges method or one of the MeasureString methods that takes a StringFormat, and pass GenericTypographic. また、のGraphicsTextRenderingHint AntiAliasであることを確認します。Also, ensure the TextRenderingHint for the Graphics is AntiAlias.

こちらもご覧ください

MeasureString(String, Font, SizeF) MeasureString(String, Font, SizeF) MeasureString(String, Font, SizeF)

指定したレイアウト領域内に指定した Font で描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font within the specified layout area.

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);
member this.MeasureString : string * System.Drawing.Font * System.Drawing.SizeF -> System.Drawing.SizeF

パラメーター

text
String String String

計測する文字列。String to measure.

font
Font Font Font

文字列のテキスト形式を定義する FontFont defines the text format of the string.

layoutArea
SizeF SizeF SizeF

テキストの最大レイアウト領域を指定する SizeF 構造体。SizeF structure that specifies the maximum layout area for the text.

戻り値

このメソッドは、text パラメーターに指定された文字列のサイズを SizeF プロパティで指定された単位で表す PageUnit 構造体を、font パラメーターで描画されたとおりに返します。This method returns a SizeF structure that represents the size, in the units specified by the PageUnit property, of the string specified by the text parameter as drawn with the font parameter.

例外

fontnullです。font is null.

次のコード例は、Windows フォームで使用するように設計さPaintEventArgsれています。これはPaint 、イベントハンドラーのパラメーターであるを必要eとします。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. コードは、次のアクションを実行します。The code performs the following actions:

  • 測定対象の文字列と Arial (16 ポイント) に設定されたフォントオブジェクトを作成します。Creates a string to measure and a font object set to Arial (16 point).

  • 文字列のレイアウトの最大サイズを設定します。Sets the maximum layout size of the string.

  • サイズオブジェクトを作成し、そのオブジェクト、フォントオブジェクト、および最大レイアウトサイズを使用して、文字列のサイズを測定します。Creates a size object and uses it, the font object, and the maximum layout size to measure the size of the string.

  • 文字列の測定されたサイズを使用して、赤い四角形を描画します。Draws a red rectangle using the measured size of the string.

  • 描画された四角形内に文字列を描画します。Draws the string within the drawn rectangle.

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は、個々の文字列と共に使用するように設計されており、グリフの突出を許容する文字列の前後に少量の余分なスペースが含まれています。The MeasureString method is designed for use with individual strings and includes a small amount of extra space before and after the string to allow for overhanging glyphs. また、メソッドDrawStringは、グリフポイントを調整して表示品質を最適化します。また、 MeasureStringによって報告された文字列の幅が狭くなることもあります。Also, the DrawString method adjusts glyph points to optimize display quality and might display a string narrower than reported by MeasureString. レイアウト内の隣接する文字列に適したメトリックを取得するには (書式設定されたMeasureCharacterRangesテキストを実装する場合MeasureStringなど)、メソッド、またはGenericTypographicを受け取るStringFormatメソッドの1つを使用して、を渡します。To obtain metrics suitable for adjacent strings in layout (for example, when implementing formatted text), use the MeasureCharacterRanges method or one of the MeasureString methods that takes a StringFormat, and pass GenericTypographic. また、のGraphicsTextRenderingHint AntiAliasであることを確認します。Also, ensure the TextRenderingHint for the Graphics is AntiAlias.

こちらもご覧ください

MeasureString(String, Font, Int32) MeasureString(String, Font, Int32) MeasureString(String, Font, Int32)

指定した Font で描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified 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);
member this.MeasureString : string * System.Drawing.Font * int -> System.Drawing.SizeF

パラメーター

text
String String String

計測する文字列。String to measure.

font
Font Font Font

文字列の書式を定義する FontFont that defines the format of the string.

width
Int32 Int32 Int32

文字列の最大幅 (ピクセル単位)。Maximum width of the string in pixels.

戻り値

このメソッドは、text パラメーターに指定された文字列のサイズを SizeF プロパティで指定された単位で表す PageUnit 構造体を、font パラメーターで描画されたとおりに返します。This method returns a SizeF structure that represents the size, in the units specified by the PageUnit property, of the string specified in the text parameter as drawn with the font parameter.

例外

fontnullです。font is null.

次のコード例は、Windows フォームで使用するように設計さPaintEventArgsれています。これはPaint 、イベントハンドラーのパラメーターであるを必要eとします。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. コードは、次のアクションを実行します。The code performs the following actions:

  • 測定対象の文字列と Arial (16 ポイント) に設定されたフォントオブジェクトを作成します。Creates a string to measure and a font object set to Arial (16 point).

  • 文字列の最大の幅を設定します。Sets the maximum width of the string.

  • サイズオブジェクトを作成し、それを使用して、フォントオブジェクトと最大文字列幅を使用して、文字列のサイズを測定します。Creates a size object and uses it, the font object, and the maximum string width to measure the size of the string.

  • 文字列の測定されたサイズを使用して、赤い四角形を描画します。Draws a red rectangle using the measured size of the string.

  • 描画された四角形内に文字列を描画します。Draws the string within the drawn rectangle.

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) の幅コンポーネントの最大値を指定します。The width parameter specifies the maximum value of the width component of the returned SizeF structure (Width). パラメーターが文字列の実際の幅よりも小さい場合、返さWidthれるコンポーネントは、指定された幅に収まる最大文字数を表す値に切り捨てられます。 widthIf the width parameter is less than the actual width of the string, the returned Width component is truncated to a value representing the maximum number of characters that will fit within the specified width. 文字列全体を格納するために、 Height返されたコンポーネントは、文字列を文字の折り返しで表示できる値に調整されます。To accommodate the entire string, the returned Height component is adjusted to a value that allows displaying the string with character wrap.

メソッドMeasureStringは、個々の文字列と共に使用するように設計されており、グリフの突出を許容する文字列の前後に少量の余分なスペースが含まれています。The MeasureString method is designed for use with individual strings and includes a small amount of extra space before and after the string to allow for overhanging glyphs. また、メソッドDrawStringは、グリフポイントを調整して表示品質を最適化します。また、 MeasureStringによって報告された文字列の幅が狭くなることもあります。Also, the DrawString method adjusts glyph points to optimize display quality and might display a string narrower than reported by MeasureString. レイアウト内の隣接する文字列に適したメトリックを取得するには (書式設定されたMeasureCharacterRangesテキストを実装する場合MeasureStringなど)、メソッド、またはGenericTypographicを受け取るStringFormatメソッドの1つを使用して、を渡します。To obtain metrics suitable for adjacent strings in layout (for example, when implementing formatted text), use the MeasureCharacterRanges method or one of the MeasureString methods that takes a StringFormat, and pass GenericTypographic. また、のGraphicsTextRenderingHint AntiAliasであることを確認します。Also, ensure the TextRenderingHint for the Graphics is AntiAlias.

こちらもご覧ください

MeasureString(String, Font, PointF, StringFormat) MeasureString(String, Font, PointF, StringFormat) MeasureString(String, Font, PointF, StringFormat)

指定した Font を使用し、指定した StringFormat で書式指定して描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font and formatted with the specified 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);
member this.MeasureString : string * System.Drawing.Font * System.Drawing.PointF * System.Drawing.StringFormat -> System.Drawing.SizeF

パラメーター

text
String String String

計測する文字列。String to measure.

font
Font Font Font

文字列のテキスト形式を定義する FontFont defines the text format of the string.

origin
PointF PointF PointF

文字列の左上隅を表す PointF 構造体。PointF structure that represents the upper-left corner of the string.

stringFormat
StringFormat StringFormat StringFormat

行間など、文字列の書式情報を表す StringFormatStringFormat that represents formatting information, such as line spacing, for the string.

戻り値

このメソッドは、text パラメーターに指定された文字列のサイズを SizeF プロパティで指定された単位で表す PageUnit 構造体を、font パラメーターおよび stringFormat パラメーターで描画されたとおりに返します。This method returns a SizeF structure that represents the size, in the units specified by the PageUnit property, of the string specified by the text parameter as drawn with the font parameter and the stringFormat parameter.

例外

fontnull です。font is null.

次のコード例は、Windows フォームで使用するように設計さPaintEventArgsれています。これはPaint 、イベントハンドラーのパラメーターであるを必要eとします。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. コードは、次のアクションを実行します。The code performs the following actions:

  • 測定する文字列を作成し、Arial (16 ポイント) に設定されたフォントオブジェクトを作成します。Creates a string to measure and a font object set to Arial (16 point)

  • 文字列の左上隅を検索するポイントを作成します。Creates a point to locate the upper-left corner of the string.

  • 文字列書式オブジェクトを作成し、その書式設定フラグDirectionVerticalをに設定します。Creates a string format object and sets its format flags to DirectionVertical.

  • 文字列を測定するサイズオブジェクトを作成します。Creates a size object to measure the string.

  • 文字列、フォントオブジェクト、検索ポイント、および文字列形式を使用して、文字列のサイズを測定します。Measures the size of the string, using the string, the font object, the locating point, and the string format.

  • 検索ポイントと文字列の測定サイズを使用して、赤い四角形を描画します。Draws a red rectangle using the locating point and the measured size of the string.

  • 描画された四角形内に文字列を描画します。Draws the string within the drawn rectangle.

結果は、垂直方向の文字列を囲む垂直方向の四角形です。The result is a vertical rectangle enclosing a vertical string.

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は、個々の文字列と共に使用するように設計されており、グリフの突出を許容する文字列の前後に少量の余分なスペースが含まれています。The MeasureString method is designed for use with individual strings and includes a small amount of extra space before and after the string to allow for overhanging glyphs. また、メソッドDrawStringは、グリフポイントを調整して表示品質を最適化します。また、 MeasureStringによって報告された文字列の幅が狭くなることもあります。Also, the DrawString method adjusts glyph points to optimize display quality and might display a string narrower than reported by MeasureString. レイアウト内の隣接する文字列に適したメトリックを取得するには (書式設定されたMeasureCharacterRangesテキストを実装する場合MeasureStringなど)、メソッド、またはGenericTypographicを受け取るStringFormatメソッドの1つを使用して、を渡します。To obtain metrics suitable for adjacent strings in layout (for example, when implementing formatted text), use the MeasureCharacterRanges method or one of the MeasureString methods that takes a StringFormat, and pass GenericTypographic. また、のGraphicsTextRenderingHint AntiAliasであることを確認します。Also, ensure the TextRenderingHint for the Graphics is AntiAlias.

こちらもご覧ください

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

指定した Font を使用し、指定した StringFormat で書式指定して描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font and formatted with the specified 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);
member this.MeasureString : string * System.Drawing.Font * System.Drawing.SizeF * System.Drawing.StringFormat -> System.Drawing.SizeF

パラメーター

text
String String String

計測する文字列。String to measure.

font
Font Font Font

文字列のテキスト形式を定義する FontFont defines the text format of the string.

layoutArea
SizeF SizeF SizeF

テキストの最大レイアウト領域を指定する SizeF 構造体。SizeF structure that specifies the maximum layout area for the text.

stringFormat
StringFormat StringFormat StringFormat

行間など、文字列の書式情報を表す StringFormatStringFormat that represents formatting information, such as line spacing, for the string.

戻り値

このメソッドは、text パラメーターに指定された文字列のサイズを SizeF プロパティで指定された単位で表す PageUnit 構造体を、font パラメーターおよび stringFormat パラメーターで描画されたとおりに返します。This method returns a SizeF structure that represents the size, in the units specified by the PageUnit property, of the string specified in the text parameter as drawn with the font parameter and the stringFormat parameter.

例外

fontnullです。font is null.

次のコード例は、Windows フォームで使用するように設計さPaintEventArgsれています。これはPaint 、イベントハンドラーのパラメーターであるを必要eとします。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. コードは、次のアクションを実行します。The code performs the following actions:

  • 測定対象の文字列と Arial (16 ポイント) に設定されたフォントオブジェクトを作成します。Creates a string to measure and a font object set to Arial (16 point).

  • 文字列の最大レイアウトサイズを設定し、文字列を測定するサイズオブジェクトを作成します。Sets the maximum layout size of the string, creating a size object to measure the string.

  • 文字列書式オブジェクトを作成し、その書式設定フラグDirectionVerticalをに設定します。Creates a string format object and sets its format flags to DirectionVertical.

  • 文字列、フォントオブジェクト、最大レイアウトサイズ、および文字列形式を使用して、文字列のサイズを測定します。Measures the size of the string, using the string, the font object, the maximum layout size, and the string format.

  • 文字列の測定されたサイズを使用して、赤い四角形を描画します。Draws a red rectangle using the measured size of the string.

  • 描画された四角形内に文字列を描画します。Draws the string within the drawn rectangle.

結果は、垂直方向の文字列を囲む垂直方向の四角形です。The result is a vertical rectangle enclosing a vertical string.

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は、個々の文字列と共に使用するように設計されており、グリフの突出を許容する文字列の前後に少量の余分なスペースが含まれています。The MeasureString method is designed for use with individual strings and includes a small amount of extra space before and after the string to allow for overhanging glyphs. また、メソッドDrawStringは、グリフポイントを調整して表示品質を最適化します。また、 MeasureStringによって報告された文字列の幅が狭くなることもあります。Also, the DrawString method adjusts glyph points to optimize display quality and might display a string narrower than reported by MeasureString. レイアウト内の隣接する文字列に適したメトリックを取得するには (書式設定されたMeasureCharacterRangesテキストを実装する場合MeasureStringなど)、メソッド、またはGenericTypographicを受け取るStringFormatメソッドの1つを使用して、を渡します。To obtain metrics suitable for adjacent strings in layout (for example, when implementing formatted text), use the MeasureCharacterRanges method or one of the MeasureString methods that takes a StringFormat, and pass GenericTypographic. また、のGraphicsTextRenderingHint AntiAliasであることを確認します。Also, ensure the TextRenderingHint for the Graphics is AntiAlias.

こちらもご覧ください

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

指定した Font を使用し、指定した StringFormat で書式指定して描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font and formatted with the specified 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);
member this.MeasureString : string * System.Drawing.Font * int * System.Drawing.StringFormat -> System.Drawing.SizeF

パラメーター

text
String String String

計測する文字列。String to measure.

font
Font Font Font

文字列のテキスト形式を定義する FontFont that defines the text format of the string.

width
Int32 Int32 Int32

文字列の最大幅。Maximum width of the string.

format
StringFormat StringFormat StringFormat

行間など、文字列の書式情報を表す StringFormatStringFormat that represents formatting information, such as line spacing, for the string.

戻り値

このメソッドは、text パラメーターに指定された文字列のサイズを SizeF プロパティで指定された単位で表す PageUnit 構造体を、font パラメーターおよび stringFormat パラメーターで描画されたとおりに返します。This method returns a SizeF structure that represents the size, in the units specified by the PageUnit property, of the string specified in the text parameter as drawn with the font parameter and the stringFormat parameter.

例外

fontnullです。font is null.

次のコード例は、Windows フォームで使用するように設計さPaintEventArgsれています。これはPaint 、イベントハンドラーのパラメーターであるを必要eとします。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. コードは、次のアクションを実行します。The code performs the following actions:

  • 測定する文字列を作成し、フォントオブジェクトを Arial (16 ポイント) に設定します。Creates a string to measure and a font object set it to Arial (16 point).

  • 文字列の最大の幅を設定します。Sets the maximum width of the string.

  • 文字列書式オブジェクトを作成し、その書式設定フラグDirectionVerticalをに設定します。Creates a string format object and sets its format flags to DirectionVertical.

  • 文字列を測定するサイズオブジェクトを作成します。Creates a size object to measure the string.

  • 文字列、フォントオブジェクト、最大幅、および文字列の書式を使用して、文字列のサイズを測定します。Measures the size of the string, using the string, the font object, the maximum width, and the string format.

  • 文字列の測定されたサイズを使用して、赤い四角形を描画します。Draws a red rectangle using the measured size of the string.

  • 描画された四角形内に文字列を描画します。Draws the string within the drawn rectangle.

結果は、垂直方向の文字列を囲む垂直方向の四角形です。The result is a vertical rectangle enclosing a vertical string.

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は、個々の文字列と共に使用するように設計されており、グリフの突出を許容する文字列の前後に少量の余分なスペースが含まれています。The MeasureString method is designed for use with individual strings and includes a small amount of extra space before and after the string to allow for overhanging glyphs. また、メソッドDrawStringは、グリフポイントを調整して表示品質を最適化します。また、 MeasureStringによって報告された文字列の幅が狭くなることもあります。Also, the DrawString method adjusts glyph points to optimize display quality and might display a string narrower than reported by MeasureString. レイアウト内の隣接する文字列に適したメトリックを取得するには (書式設定されたMeasureCharacterRangesテキストを実装する場合MeasureStringなど)、メソッド、またはGenericTypographicを受け取るStringFormatメソッドの1つを使用して、を渡します。To obtain metrics suitable for adjacent strings in layout (for example, when implementing formatted text), use the MeasureCharacterRanges method or one of the MeasureString methods that takes a StringFormat, and pass GenericTypographic. また、のGraphicsTextRenderingHint AntiAliasであることを確認します。Also, ensure the TextRenderingHint for the Graphics is AntiAlias.

こちらもご覧ください

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

指定した Font を使用し、指定した StringFormat で書式指定して描画した場合の、指定した文字列を計測します。Measures the specified string when drawn with the specified Font and formatted with the specified 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);
member this.MeasureString : string * System.Drawing.Font * System.Drawing.SizeF * System.Drawing.StringFormat * int * int -> System.Drawing.SizeF

パラメーター

text
String String String

計測する文字列。String to measure.

font
Font Font Font

文字列のテキスト形式を定義する FontFont that defines the text format of the string.

layoutArea
SizeF SizeF SizeF

テキストの最大レイアウト領域を指定する SizeF 構造体。SizeF structure that specifies the maximum layout area for the text.

stringFormat
StringFormat StringFormat StringFormat

行間など、文字列の書式情報を表す StringFormatStringFormat that represents formatting information, such as line spacing, for the string.

charactersFitted
Int32 Int32 Int32

文字列の文字数。Number of characters in the string.

linesFilled
Int32 Int32 Int32

文字列のテキスト行数。Number of text lines in the string.

戻り値

このメソッドは、text パラメーターに指定された文字列のサイズを SizeF プロパティで指定された単位で表す PageUnit 構造体を、font パラメーターおよび stringFormat パラメーターで描画されたとおりに返します。This method returns a SizeF structure that represents the size of the string, in the units specified by the PageUnit property, of the text parameter as drawn with the font parameter and the stringFormat parameter.

例外

fontnullです。font is null.

次のコード例は、Windows フォームで使用するように設計さPaintEventArgsれています。これはPaint 、イベントハンドラーのパラメーターであるを必要eとします。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. コードは、次のアクションを実行します。The code performs the following actions:

  • 測定する文字列を作成し、Arial (16 ポイント) に設定されたフォントオブジェクトを作成します。Creates a string to measure and a font object set to Arial (16 point)

  • 文字列のレイアウトの最大サイズを設定します。Sets the maximum layout size of the string.

  • 文字列書式オブジェクトを作成し、その書式設定フラグDirectionVerticalをに設定します。Creates a string format object and sets its format flags to DirectionVertical.

  • 整数変数charactersFittedlinesFilled 、文字列を測定するサイズオブジェクトを作成します。Creates the integer variables charactersFitted and linesFilled and a size object to measure the string.

  • 文字列のサイズを測定し、文字列、フォントオブジェクト、最大レイアウトサイズ、および文字列形式を使用して、文字の幅と行数を決定します。Measures the size of the string and determines the number of characters fitted and lines filled, using the string, the font object, the maximum layout size, and the string format.

  • 文字列の測定されたサイズを使用して、赤い四角形を描画します。Draws a red rectangle using the measured size of the string.

  • 描画された四角形内に文字列を描画します。Draws the string within the drawn rectangle.

  • 適合した文字数と入力された行の値を描画します。Draws the values of the number of characters fitted and lines filled.

結果は、垂直方向の文字列を囲む垂直方向の四角形です。The result is a vertical rectangle enclosing a vertical string.

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は、個々の文字列と共に使用するように設計されており、グリフの突出を許容する文字列の前後に少量の余分なスペースが含まれています。The MeasureString method is designed for use with individual strings and includes a small amount of extra space before and after the string to allow for overhanging glyphs. また、メソッドDrawStringは、グリフポイントを調整して表示品質を最適化します。また、 MeasureStringによって報告された文字列の幅が狭くなることもあります。Also, the DrawString method adjusts glyph points to optimize display quality and might display a string narrower than reported by MeasureString. レイアウト内の隣接する文字列に適したメトリックを取得するには (書式設定されたMeasureCharacterRangesテキストを実装する場合など)、メソッドStringFormatまたはGenericTypographicを使用してを渡すMeasureStringメソッドの1つを使用します。To obtain metrics suitable for adjacent strings in layout (for example, when implementing formatted text), use the MeasureCharacterRanges method or one of the MeasureString methods that takes a StringFormat and pass GenericTypographic. また、 TextRenderingHint GraphicsのがAntiAliasであることを確認します。Also ensure the TextRenderingHint for the Graphics is AntiAlias.

こちらもご覧ください

適用対象