Graphics.MeasureString 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
测量用指定的 Font 绘制的指定字符串。
重载
MeasureString(ReadOnlySpan<Char>, Font, SizeF, StringFormat)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 Font 绘制并用指定的 StringFormat 格式化的指定字符串。
public:
System::Drawing::SizeF MeasureString(ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::SizeF layoutArea, System::Drawing::StringFormat ^ stringFormat);
public System.Drawing.SizeF MeasureString (ReadOnlySpan<char> text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat? stringFormat);
member this.MeasureString : ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.SizeF * System.Drawing.StringFormat -> System.Drawing.SizeF
Public Function MeasureString (text As ReadOnlySpan(Of Char), font As Font, layoutArea As SizeF, stringFormat As StringFormat) As SizeF
参数
- text
- ReadOnlySpan<Char>
要测量的字符串。
- stringFormat
- StringFormat
StringFormat,它表示字符串的格式化信息(如行距)。
返回
此方法返回 SizeF 结构,该结构表示在 PageUnit 参数中指定的、用 text
参数和 font
参数绘制的字符串的大小,单位由 stringFormat
属性指定。
适用于
MeasureString(ReadOnlySpan<Char>, Font)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 Font 绘制的指定字符串。
public:
System::Drawing::SizeF MeasureString(ReadOnlySpan<char> text, System::Drawing::Font ^ font);
public System.Drawing.SizeF MeasureString (ReadOnlySpan<char> text, System.Drawing.Font font);
member this.MeasureString : ReadOnlySpan<char> * System.Drawing.Font -> System.Drawing.SizeF
Public Function MeasureString (text As ReadOnlySpan(Of Char), font As Font) As SizeF
参数
- text
- ReadOnlySpan<Char>
要测量的字符串。
返回
此方法返回 SizeF 结构,该结构表示 PageUnit 参数指定的、使用 text
参数绘制的字符串的大小,单位由 font
属性指定。
适用于
MeasureString(String, Font)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 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
要测量的字符串。
返回
此方法返回 SizeF 结构,该结构表示 PageUnit 参数指定的、使用 text
参数绘制的字符串的大小,单位由 font
属性指定。
例外
font
为 null
。
font
为 null
。
示例
下面的代码示例旨在与 Windows 窗体 一起使用,它需要 PaintEventArgse
,这是事件处理程序的参数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 方法或采用 并传递 GenericTypographic的方法之MeasureString一StringFormat。 此外,请确保 TextRenderingHint 的 为 GraphicsAntiAlias。
另请参阅
- MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
- MeasureCharacterRanges(String, Font, RectangleF, StringFormat)
- 使用字体和文本
适用于
MeasureString(ReadOnlySpan<Char>, Font, SizeF)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
当在指定的布局区域内以指定的 Font 绘制时,测量指定的字符串。
public:
System::Drawing::SizeF MeasureString(ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::SizeF layoutArea);
public System.Drawing.SizeF MeasureString (ReadOnlySpan<char> text, System.Drawing.Font font, System.Drawing.SizeF layoutArea);
member this.MeasureString : ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.SizeF -> System.Drawing.SizeF
Public Function MeasureString (text As ReadOnlySpan(Of Char), font As Font, layoutArea As SizeF) As SizeF
参数
- text
- ReadOnlySpan<Char>
要测量的字符串。
返回
此方法返回 SizeF 结构,该结构表示 PageUnit 参数指定的、使用 text
参数绘制的字符串的大小,单位由 font
属性指定。
适用于
MeasureString(ReadOnlySpan<Char>, Font, Int32)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 Font 绘制的指定字符串。
public:
System::Drawing::SizeF MeasureString(ReadOnlySpan<char> text, System::Drawing::Font ^ font, int width);
public System.Drawing.SizeF MeasureString (ReadOnlySpan<char> text, System.Drawing.Font font, int width);
member this.MeasureString : ReadOnlySpan<char> * System.Drawing.Font * int -> System.Drawing.SizeF
Public Function MeasureString (text As ReadOnlySpan(Of Char), font As Font, width As Integer) As SizeF
参数
- text
- ReadOnlySpan<Char>
要测量的字符串。
- width
- Int32
字符串的最大宽度(以像素为单位)。
返回
此方法返回 SizeF 结构,该结构表示在 PageUnit 参数中指定的、使用 text
参数绘制的字符串的大小,单位由 font
属性指定。
适用于
MeasureString(String, Font, SizeF)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- Graphics.cs
当在指定的布局区域内以指定的 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
要测量的字符串。
返回
此方法返回 SizeF 结构,该结构表示 PageUnit 参数指定的、使用 text
参数绘制的字符串的大小,单位由 font
属性指定。
例外
font
为 null
。
示例
下面的代码示例旨在与 Windows 窗体 一起使用,它需要 PaintEventArgse
,这是事件处理程序的参数Paint。 此代码执行以下操作:
创建要度量的字符串和设置为 Arial (16 磅) 的字体对象。
设置字符串的最大布局大小。
创建 size 对象并使用它、字体对象和最大布局大小来度量字符串的大小。
使用字符串的测量大小绘制红色矩形。
绘制矩形中的字符串。
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 方法或采用 并传递 GenericTypographic的方法之MeasureString一StringFormat。 此外,请确保 TextRenderingHint 的 为 GraphicsAntiAlias。
另请参阅
- MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
- MeasureCharacterRanges(String, Font, RectangleF, StringFormat)
- 使用字体和文本
适用于
MeasureString(String, Font, Int32)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 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
要测量的字符串。
- width
- Int32
字符串的最大宽度(以像素为单位)。
返回
此方法返回 SizeF 结构,该结构表示在 PageUnit 参数中指定的、使用 text
参数绘制的字符串的大小,单位由 font
属性指定。
例外
font
为 null
。
示例
下面的代码示例旨在与 Windows 窗体 一起使用,它需要 PaintEventArgse
,这是事件处理程序的参数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 方法或采用 StringFormat的方法之MeasureString一,并传递 GenericTypographic。 此外,请确保 TextRenderingHint 的 为 GraphicsAntiAlias。
另请参阅
- MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
- MeasureCharacterRanges(String, Font, RectangleF, StringFormat)
- 使用字体和文本
适用于
MeasureString(ReadOnlySpan<Char>, Font, PointF, StringFormat)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 Font 绘制并用指定的 StringFormat 格式化的指定字符串。
public:
System::Drawing::SizeF MeasureString(ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::PointF origin, System::Drawing::StringFormat ^ stringFormat);
public System.Drawing.SizeF MeasureString (ReadOnlySpan<char> text, System.Drawing.Font font, System.Drawing.PointF origin, System.Drawing.StringFormat? stringFormat);
member this.MeasureString : ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.PointF * System.Drawing.StringFormat -> System.Drawing.SizeF
Public Function MeasureString (text As ReadOnlySpan(Of Char), font As Font, origin As PointF, stringFormat As StringFormat) As SizeF
参数
- text
- ReadOnlySpan<Char>
要测量的字符串。
- stringFormat
- StringFormat
StringFormat,它表示字符串的格式化信息(如行距)。
返回
此方法返回 SizeF 结构,该结构表示 PageUnit 参数指定的、使用 text
参数和 font
参数绘制的字符串的大小,单位由 stringFormat
属性指定。
适用于
MeasureString(ReadOnlySpan<Char>, Font, Int32, StringFormat)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 Font 绘制并用指定的 StringFormat 格式化的指定字符串。
public:
System::Drawing::SizeF MeasureString(ReadOnlySpan<char> text, System::Drawing::Font ^ font, int width, System::Drawing::StringFormat ^ format);
public System.Drawing.SizeF MeasureString (ReadOnlySpan<char> text, System.Drawing.Font font, int width, System.Drawing.StringFormat? format);
member this.MeasureString : ReadOnlySpan<char> * System.Drawing.Font * int * System.Drawing.StringFormat -> System.Drawing.SizeF
Public Function MeasureString (text As ReadOnlySpan(Of Char), font As Font, width As Integer, format As StringFormat) As SizeF
参数
- text
- ReadOnlySpan<Char>
要测量的字符串。
- width
- Int32
字符串的最大宽度。
- format
- StringFormat
StringFormat,它表示字符串的格式化信息(如行距)。
返回
此方法返回 SizeF 结构,该结构表示在 PageUnit 参数中指定的、用 text
参数和 font
参数绘制的字符串的大小,单位由 stringFormat
属性指定。
适用于
MeasureString(String, Font, PointF, StringFormat)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 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
要测量的字符串。
- stringFormat
- StringFormat
StringFormat,它表示字符串的格式化信息(如行距)。
返回
此方法返回 SizeF 结构,该结构表示 PageUnit 参数指定的、使用 text
参数和 font
参数绘制的字符串的大小,单位由 stringFormat
属性指定。
例外
font
为 null
。
示例
下面的代码示例旨在与 Windows 窗体 一起使用,它需要 PaintEventArgse
,它是 事件处理程序的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 方法或采用 StringFormat的方法之MeasureString一,并传递 GenericTypographic。 此外,请确保 TextRenderingHint 的 为 GraphicsAntiAlias。
另请参阅
- MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
- MeasureCharacterRanges(String, Font, RectangleF, StringFormat)
- 使用字体和文本
适用于
MeasureString(String, Font, SizeF, StringFormat)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 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
要测量的字符串。
- stringFormat
- StringFormat
StringFormat,它表示字符串的格式化信息(如行距)。
返回
此方法返回 SizeF 结构,该结构表示在 PageUnit 参数中指定的、用 text
参数和 font
参数绘制的字符串的大小,单位由 stringFormat
属性指定。
例外
font
为 null
。
示例
下面的代码示例旨在与 Windows 窗体 一起使用,它需要 PaintEventArgse
,它是 事件处理程序的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 方法或采用 StringFormat的方法之MeasureString一,并传递 GenericTypographic。 此外,请确保 TextRenderingHint 的 为 GraphicsAntiAlias。
另请参阅
- MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
- MeasureCharacterRanges(String, Font, RectangleF, StringFormat)
- 使用字体和文本
适用于
MeasureString(String, Font, Int32, StringFormat)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 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
要测量的字符串。
- width
- Int32
字符串的最大宽度。
- format
- StringFormat
StringFormat,它表示字符串的格式化信息(如行距)。
返回
此方法返回 SizeF 结构,该结构表示在 PageUnit 参数中指定的、用 text
参数和 font
参数绘制的字符串的大小,单位由 stringFormat
属性指定。
例外
font
为 null
。
示例
下面的代码示例旨在与 Windows 窗体 一起使用,它需要 PaintEventArgse
,它是 事件处理程序的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 方法或采用 StringFormat的方法之MeasureString一,并传递 GenericTypographic。 此外,请确保 TextRenderingHint 的 为 GraphicsAntiAlias。
另请参阅
- MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
- MeasureCharacterRanges(String, Font, RectangleF, StringFormat)
- 使用字体和文本
适用于
MeasureString(ReadOnlySpan<Char>, Font, SizeF, StringFormat, Int32, Int32)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 Font 绘制并用指定的 StringFormat 格式化的指定字符串。
public:
System::Drawing::SizeF MeasureString(ReadOnlySpan<char> 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 (ReadOnlySpan<char> text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat? stringFormat, out int charactersFitted, out int linesFilled);
member this.MeasureString : ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.SizeF * System.Drawing.StringFormat * int * int -> System.Drawing.SizeF
Public Function MeasureString (text As ReadOnlySpan(Of Char), font As Font, layoutArea As SizeF, stringFormat As StringFormat, ByRef charactersFitted As Integer, ByRef linesFilled As Integer) As SizeF
参数
- text
- ReadOnlySpan<Char>
要测量的字符串。
- stringFormat
- StringFormat
StringFormat,它表示字符串的格式化信息(如行距)。
- charactersFitted
- Int32
字符串中的字符数。
- linesFilled
- Int32
字符串中的文本行数。
返回
此方法返回 SizeF 结构,该结构表示 text
参数指定的、使用 font
参数和 stringFormat
参数绘制的字符串的大小,单位由 PageUnit 属性指定。
适用于
MeasureString(String, Font, SizeF, StringFormat, Int32, Int32)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- Graphics.cs
测量用指定的 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
要测量的字符串。
- stringFormat
- StringFormat
StringFormat,它表示字符串的格式化信息(如行距)。
- charactersFitted
- Int32
字符串中的字符数。
- linesFilled
- Int32
字符串中的文本行数。
返回
此方法返回 SizeF 结构,该结构表示 text
参数指定的、使用 font
参数和 stringFormat
参数绘制的字符串的大小,单位由 PageUnit 属性指定。
例外
font
为 null
。
示例
下面的代码示例旨在与 Windows 窗体 一起使用,它需要 PaintEventArgse
,它是 事件处理程序的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 方法或采用 并传递 GenericTypographic的方法之MeasureString一StringFormat。 另请确保 TextRenderingHint 的 为 GraphicsAntiAlias。
另请参阅
- MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
- MeasureCharacterRanges(String, Font, RectangleF, StringFormat)
- 使用字体和文本
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈