c# 获得文字的像素宽度

Graphics graphics = CreateGraphics();
SizeF sizeF = graphics.MeasureString(textBox1.Text, new Font("宋体", 9));
MessageBox.Show(string.Format("字体宽度:{0},高度:{1}", sizeF.Width, sizeF.Height));
graphics.Dispose();

使用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);
        }

时间: 2024-10-26 02:46:53

c# 获得文字的像素宽度的相关文章

让CSS3给你的文字加上边框宽度,并实现镂空效果

这次,我主要向大家介绍一下CSS3下的-webkit-text-stroke属性,并分享几个用该属性制作的镂空文字效果. 1.-webkit-text-stroke属性简介 CSS边框的一个不足就是只有矩形的元素才能使用.-webkit-text-stroke可以为文字添加边框.它不但可以设置文字边框的宽度,也能设置其颜色.而且,配合使用color: transparent属性,你还可以创建镂空的字体. 2.一起看几个利用-webkit-text-stroke制作的文字特效 第一个CSS代码如下

Ios之label自适应里面的文字,自动调整宽度和高度的

[label setNumberOfLines:0];//设置显示的行数 NSString *s = @"string......";//设置要显示的内容 UIFont *font = [UIFont fontWithName:@"Arial" size:12];//设置字体样式 CGSize size = CGSizeMake(320,2000);//设置最大容量 CGSize labelsize = [s sizeWithFont:font constraine

Android开发经验之获取画在画布上的字符串长度、宽度(所占像素宽度)

Android中获取字符串长度.宽度(所占像素宽度) 计算出当前绘制出来的字符串有多宽,可以这么来! 方法1: Paint paint = new Paint(); Rect rect = new Rect(); //返回包围整个字符串的最小的一个Rect区域 paint.getTextBounds(text, 0, 1, rect); strwid = rect.width(); strhei = rect.height(); 方法2: //直接返回参数字符串所占用的宽度 strWidth =

获得qstring字符串的长度(字节长度和所占的像素宽度)

1.QString 用length()返回字符串的长度,即字节数, 在中英文字符都是以 Unicode 方式编码的,所以,无论中英文都算的长度为 1. 想要取得英文长度为 1 中文长度为 2 的总长度,必须用toLocal8bit().具体使用方法如下所示: QString s = "ab中文"; int length = s.length(); //length = 4; length = s.toLocal8Bit().length(); //length = 6 2.以上都是获取

Swift UILabel 文字大小随着宽度调整

Swift UILabel的宽度一般都是固定的,但是文字有时候长有时候短,如何做到文字在超过Label宽度之后适当缩小使得现实完全 其实,很多简单 我们调用 adjustsFontSizeToFitWidth 即可实现 let label1=UILabel(frame: CGRectMake(30, 120, 300, 36)) label1.text="测试Swift UILabel 这里测试一下文字大小与标签宽度自适应 和设置最小缩放比例" self.view .addSubvie

不固定文字在固定高度宽度下垂直水平居中

1 <div> 2 <span>BZJ-1300/1450/1600 Automatic 3 Flute Laminator</span> 4 </div> div{width:150px;height:70px;display:table;} span{display:table-cell;vertical-align:middle;height:70px;width:150px;text-align:center;} span的宽度要给固定,给100%的

标签内显示文字超过行宽度显示省略号

在table中或者一些特殊的需求情况下,需要展示部分文字并在title中显示全部信息,例如一个简短的说明如果超过15个字就显示省略号 以前自己做的时候都是通过js或者razor语法来实现,但是这样却有一个缺陷,不能自适应页面或者说屏幕的分辨率.当屏幕分辨率改变时,页面就会变形了. 这里给出一个解决方案,采用css技术来实现相应的功能. 页面代码如下: <td> <a class="textbox" title="@(item.Note == null ? &

label 根据文字label自适应宽度

UILabel *Label = [[UILabel alloc]init]; Label.text = @"长一点也是可以的"; Label.textColor = black_Color; Label.textAlignment = NSTextAlignmentLeft; gsmcLabel.font = [UIFont systemFontOfSize:12]; CGSize size = [Label.text sizeWithAttributes:[NSDictionary

TextView-- 测量文字宽度

https://my.oschina.net/lengwei/blog/637380; http://blog.csdn.net/mare_blue/article/details/51388403; http://blog.csdn.net/baidu_31093133/article/details/52413893; --1,Android中调用Paint的measureText()方法取得字符串显示的宽度值: public static float GetTextWidth(String