计算指定的 Font 对象绘制的指定字符串尺寸 [转自MSDN]

测量用指定的 Font 对象绘制的指定字符串。

[Visual Basic]
Overloads Public Function MeasureString( _
   ByVal text As String, _
   ByVal font As Font _
) As SizeF

[C#]
public SizeF MeasureString(
   string text,
   Font font
);


[C++]
public: SizeF MeasureString(
   String* text,
   Font* font
);


[JScript]
public function MeasureString(
   text : String,
   font : Font
) : SizeF;

参数

text
要测量的字符串。
font
Font 对象,它定义字符串的文本格式。

返回值

此方法返回 SizeF 结构,该结构表示在 text 参数中指定的、用 font 参数绘制的字符串的大小(以像素为单位)。

备注

MeasureString 方法旨在与个别字符串一起使用,它在字符串前后包括少量额外的空格供突出的标志符号使用。另外,DrawString 方法会调整标志符号镑值以优化显示质量,它显示的字符串可能比 MeasureString 报告的窄。若要获得适合布局中相邻字符串的度量标准(如在实现格式化文本时),请使用 MeasureCharacterRanges 方法。

示例

[Visual Basic, C#] 下面的示例旨在用于 Windows 窗体,它需要 PaintEventArgs e(这是 Paint 事件处理程序的参数)。代码执行下列操作:

  • 创建要测量的字符串。
  • 创建字体对象,并将其设置为 Arial (16pt.)。
  • 创建大小对象,并使用它和字体对象来测量字符串的大小。
  • 使用所测得的字符串大小绘制一个红色矩形。
  • 在绘制的矩形内绘制字符串。

[Visual Basic]
Public Sub MeasureStringMin(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), 0F, 0F, _
stringSize.Width, stringSize.Height)
' Draw string to screen.
e.Graphics.DrawString(measureString, stringFont, Brushes.Black, _
New PointF(0, 0))
End Sub

[C#]
public 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));
}

posted on 2005-03-21 06:38  XDev  阅读(1554)  评论(0编辑  收藏  举报

导航