我正在尝试估算像素的宽度,如果在我正在创建的工具中使用C#作为特定字体(Arial 18px)在Chrome中呈现文本.
将我的结果与此工具进行比较(使用浏览器呈现宽度):
http://searchwilderness.com/tools/pixel-length/字符串:
"Lorem ipsum dolor sit amet,consectetur adipiscing elit."
计算宽度为439像素.
但是使用C#中的代码我得到445px:
var font = new Font("Arial",18,FontStyle.Regular,GraphicsUnit.Pixel); var text = "Lorem ipsum dolor sit amet,consectetur adipiscing elit."; var size = TextRenderer.MeasureText(text,font,new Size(int.MaxValue,int.MaxValue),textformatFlags.nopadding);
解决方法
您可以将GDI与StringFormat.GenericTypographic一起使用:
var font = new System.Drawing.Font("Arial",System.Drawing.FontStyle.Regular,system.drawing.graphicsUnit.Pixel); var text = "Lorem ipsum dolor sit amet,consectetur adipiscing elit."; var graphics = system.drawing.graphics.FromHwnd(IntPtr.Zero); var size = graphics.MeasureString(text,int.MaxValue,System.Drawing.StringFormat.GenericTypographic);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。