计算字符串的显示宽度 - Java和C#之间的差异

时间:2017-07-03 13:10:51

标签: java c# string

我必须在java和C#中计算字符串的像素长度。我分别使用这些代码

爪哇

 Font font = new Font("Calibri", Font.PLAIN, 14);
 Canvas component = new Canvas();
 System.out.println(component.getFontMetrics(font).stringWidth("0"));

C#

float fontWidth = TextRenderer.MeasureText("0", new System.Drawing.Font("Calibri", 14, System.Drawing.FontStyle.Regular)).Width;
Console.WriteLine(fontWidth);

问题是获得的结果与Java和C#完全不同。例如

  • Calibri ”11:Java = 6px C#= 15px
  • Calibri ”14:Java = 7px C#= 20px
  • Arial ”14:Java = 8px C#= 21px

知道为什么吗?是否有任何启发式申请获得类似的结果?

谢谢

0 个答案:

没有答案