获取任何给定字符的像素宽度

βӔḺ*_*ⱫŌŔ 7 .net wpf graphics fonts winforms

我有这个非常棒的想法,但无法确定.NET Framework中是否有任何类(任何版本,最好是3.5或4.0)允许您传入一个字符,并返回该字符的宽度(以像素为单位),无论使用哪种字体,字体大小或字体装饰.有人可以指点我正确的方向吗?对于这样的事情,是否存在类/某事?

Pau*_*sik 5

查看Graphics.MeasureString方法.

代码示例改编自链接:

SizeF charSize = e.Graphics.MeasureString("X", new Font("Arial", 16));
// do stuff with charSize ...
Run Code Online (Sandbox Code Playgroud)

上面的示例假定您位于Paint事件处理程序的函数体中,并且已经为您创建了Graphics对象并将其作为事件参数传入.如果您不希望或不能在Paint处理程序中执行此操作,则可以使用Control.CreateGraphics在方便时创建图形对象.