博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
黄聪:C#如何通过MeasureString、Graphics获取字符串的像素长度
阅读量:6207 次
发布时间:2019-06-21

本文共 933 字,大约阅读时间需要 3 分钟。

1、    使用g.MeasureString()获得

使用MeasureString测量出来的字符宽度,总是比实际宽度大一些,而且随着字符的长度增大,貌似实际宽度和测量宽度的差距也越来越大了。查了一下MSDN,找到了下面这个理由:MeasureString 方法旨在与个别字符串一起使用,它在字符串前后包括少量额外的空格供突出的标志符号使用。

string str;str = "大";Font f = new Font("SimSun", 7F, System.Drawing.FontStyle.Regular);Graphics g = this.CreateGraphics();//单位为mmg.PageUnit = GraphicsUnit.Millimeter;SizeF sim = g.MeasureString(str, f);

 

2、使用TextRenderer.MeasureText获得,提供使用指定尺寸创建文本初始边框时,使用指定的设备上下文、字体和格式说明所绘制的指定文本的尺寸(以像素为单位)。

private void MeasureText(PaintEventArgs e) {            string str;            str = "大家好";            Font f = new Font("SimSun", 7F, System.Drawing.FontStyle.Regular);            Size sif = TextRenderer.MeasureText(e.Graphics, str, f, new Size(0, 0), TextFormatFlags.NoPadding);            MessageBox.Show((sif.Width / pdi).ToString());}private void print(object sender, PaintEventArgs e){            MeasureText(e);}

 

转载于:https://www.cnblogs.com/huangcong/p/4158700.html

你可能感兴趣的文章
error: Refusing toundefine while domain managed save image exists
查看>>
wordpress在新窗口打开留言者链接
查看>>
java开发过程中的命名规范
查看>>
mysql索引随记
查看>>
关于Pac-Man,你所要了解的 一切
查看>>
分布式配置管理平台Disconf
查看>>
pdf 字体和图片抽取
查看>>
Cisco Nexus 1000V
查看>>
我的友情链接
查看>>
[iOS Animation]-CALayer 性能优化实例
查看>>
CentOS多网卡重命名配置
查看>>
变态青蛙跳
查看>>
Git常用命令总结
查看>>
定时任务
查看>>
MyBatis之输入与输出(resultType、resultMap)映射
查看>>
剥开比原看代码09:通过dashboard创建密钥时,前端的数据是如何传到后端的?
查看>>
51、YUM安装配置LAMP、phpMyAdmin实战
查看>>
Yeslab现任明教教主ISE课程前七部分免费发布
查看>>
linux下恢复误删文件
查看>>
Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide开源组件加载网络图片的优缺点比较...
查看>>