黄聪:C#如何通过MeasureString、Graphics获取字符串的像素长度
2014-12-11 22:51
441 查看
1、 使用g.MeasureString()获得
使用MeasureString测量出来的字符宽度,总是比实际宽度大一些,而且随着字符的长度增大,貌似实际宽度和测量宽度的差距也越来越大了。查了一下MSDN,找到了下面这个理由:MeasureString 方法旨在与个别字符串一起使用,它在字符串前后包括少量额外的空格供突出的标志符号使用。
2、使用TextRenderer.MeasureText获得,提供使用指定尺寸创建文本初始边框时,使用指定的设备上下文、字体和格式说明所绘制的指定文本的尺寸(以像素为单位)。
使用MeasureString测量出来的字符宽度,总是比实际宽度大一些,而且随着字符的长度增大,貌似实际宽度和测量宽度的差距也越来越大了。查了一下MSDN,找到了下面这个理由:MeasureString 方法旨在与个别字符串一起使用,它在字符串前后包括少量额外的空格供突出的标志符号使用。
string str; str = "大"; Font f = new Font("SimSun", 7F, System.Drawing.FontStyle.Regular); Graphics g = this.CreateGraphics(); //单位为mm g.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#]如何获取变量的名字,不是值,是名称。返回名字的字符串
- 在C#中如何获取字符串的真实的长度
- 在C#中如何获取字符串的真实的长度
- C#中如何获取一个字符串的实际字符数
- C#获取字符串的长度
- 获取字符串像素长度
- 如何通过字符串指定的窗口名称,获取该窗口内的控件
- 如何获取字符串的像素尺寸?
- 利用Graphics的MeasureString方法测量特定字符串的长度
- C#中如何获取一个字符串的实际字符数
- 多种获取字符串像素长度的方法
- 获取字符串所占像素长度
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#中如何获取一个字符串的实际字符数
- 通过js来获取包含中文字符的字符串的长度的方法
- 如何获取字符串的屏幕显示长度,以及在button上文字换行。
- 一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成.请用c#语言编写主要程序来实现
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- 如何在C#中求字符串的长度
- C# 测量用指定的 Font 绘制的指定字符串。(指定字符串的像素长度)