我有以下代码在我的本地计算机上工作(Win 7,.NET 4),但它似乎在服务器上不起作用。我想以编程方式测量文本长度
有人可以帮忙吗?
private float GetTextSize(string text, float textSize)
{
using (Bitmap bmp = new Bitmap(1, 1))
{
bmp.SetResolution(96, 96);
using (Graphics g = Graphics.FromImage(bmp))
{
using (System.Drawing.Font font = new System.Drawing.Font(fontName, textSize))
{
return g.MeasureString(text, font).Width;
}
}
}
}
我会考虑任何更好的解决方案。
更新
如何检测机器上是否有可用的字体类型?
更新2:
为什么我的问题得到减分?任何人都可以请它投票。
提前致谢!
答案 0 :(得分:0)
问题是即使对于具有相同数字字符的文本,它也会返回不同的文本长度,例如对于某些字体类型,1234比abcd长。我之前的逻辑是比较每个文本的字符数,并将最长的文本传递给方法,基于这个原因这是不正确的。
解决方案是为每个文本调用方法,并且从方法返回的文本长度是可靠的比较。