首页 > 代码库 > 黄聪:C#如何通过MeasureString、Graphics获取字符串的像素长度
黄聪:C#如何通过MeasureString、Graphics获取字符串的像素长度
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);}
黄聪:C#如何通过MeasureString、Graphics获取字符串的像素长度
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。