C# 使用GDI+;图表.测量问题
我有以下代码在本地机器上运行(Win7、.NET4),但在服务器上似乎不起作用。我想以编程方式测量文本长度 有人能帮忙吗C# 使用GDI+;图表.测量问题,c#,graphics,drawing,gdi+,C#,Graphics,Drawing,Gdi+,我有以下代码在本地机器上运行(Win7、.NET4),但在服务器上似乎不起作用。我想以编程方式测量文本长度 有人能帮忙吗 private float GetTextSize(string text, float textSize) { using (Bitmap bmp = new Bitmap(1, 1)) { bmp.SetResolution(96, 96); using (Graphics g = Graphics.FromImage(b
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;
}
}
}
}
如果可以的话,我会考虑任何更好的解决方案。< /P>
更新:
如何检测机器上是否有可用的字体类型
更新2:
为什么我的问题会被扣分?请任何人投弃权票
提前谢谢 问题在于,即使文本具有相同的数字字符,它也会返回不同的文本长度,例如,对于某些字体类型,1234比abcd长。我以前的逻辑是比较每个文本的字符数,并将最长的文本传递给方法,基于这个原因,这是不正确的
解决方案是为每个文本调用该方法,并且该方法返回的文本长度比较可靠。您能定义“不工作”吗?也许这个字体不存在?@rudi_visser:这意味着它的性能不如预期。“还有什么?”:)那太好了,但它到底有什么用呢?谢谢你的建议。如何检测机器上是否有可用的字体类型?如果字体类型不可用,它会导致异常吗?@rudi_visser它会根据指定的文本和字体大小以编程方式测量文本长度。