出于某种原因,如果我使用 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);
有谁知道为什么会这样做?
答案 0 :(得分:20)
假设您的Font.Size的单位是Point
,您应该将传递给AddString
的大小转换为emSize(绑定角色的em方框的高度)。
float emSize = graphics.DpiY * font.Size / 72;
答案 1 :(得分:2)
float emSize = graphics.DpiY * font.SizeInPoints / 72;