C#:像素宽度匹配在浏览器中呈现的文本
发布时间:2020-12-15 07:54:11 所属栏目:百科 来源:网络整理
导读:我正在尝试估算像素的宽度,如果在我正在创建的工具中使用C#作为特定字体(Arial 18px)在Chrome中呈现文本. 将我的结果与此工具进行比较(使用浏览器呈现宽度): http://searchwilderness.com/tools/pixel-length/字符串: "Lorem ipsum dolor sit amet,consect
我正在尝试估算像素的宽度,如果在我正在创建的工具中使用C#作为特定字体(Arial 18px)在Chrome中呈现文本.
将我的结果与此工具进行比较(使用浏览器呈现宽度): "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); 我可以修改我的代码,使其渲染类似于浏览器吗? 我试图输出带有字体和文本的标签,并与浏览器渲染进行比较(/ – 1px). 解决方法
您可以将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); 另见:https://stackoverflow.com/a/6404811 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |