码迷,mamicode.com
首页 > Windows程序 > 详细

黄聪:C#如何通过MeasureString、Graphics获取字符串的像素长度

时间:2014-12-11 23:37:57      阅读:339      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   os   使用   sp   for   strong   

1、    使用g.MeasureString()获得

使用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#如何通过MeasureString、Graphics获取字符串的像素长度

标签:style   blog   ar   color   os   使用   sp   for   strong   

原文地址:http://www.cnblogs.com/huangcong/p/4158700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!