'GraphicsPath.AddString'中的字体比通常的字体小

时间:2010-02-18 22:44:35

标签: c# graphics fonts path gdi

出于某种原因,如果我使用 AddString 将字符串添加到 GraphicsPath ,字体将会比字体对话框中的字体小。

  SizeF sz = g.MeasureString(Text, new Font(Font.FontFamily, (int)(Font.Size - (Font.Size / 7)), Font.Style), new PointF(0, 0), StringFormat.GenericDefault);

  this.Size = new Size((int)sz.Width, (int)sz.Height);
  //These are not the same
  fontpath.AddString(this.Text, this.Font.FontFamily,(int)this.Font.Style, this.Font.Size, new Point(0, 0),StringFormat.GenericDefault);

有谁知道为什么会这样做?

2 个答案:

答案 0 :(得分:20)

假设您的Font.Size的单位是Point,您应该将传递给AddString的大小转换为emSize(绑定角色的em方框的高度)。

float emSize = graphics.DpiY * font.Size / 72;

答案 1 :(得分:2)

float emSize = graphics.DpiY * font.SizeInPoints / 72;