如何获取字符串的像素尺寸?

字符串

CSDN 新首页的全部内容目前都是手工更新的,工作量很大,原因之一是为了裁减文章的标题,以便不出现超长换行的状况。

本来可以在程序中控制标题宽度的,超过的话自动截断并用 tooltip 的形式显示全标题,但是因为 CSDN 首页采用的字体是 Tahoma 12px,英文字体不是等宽的,因此难以确定宽度。

一直以来没动脑筋想解决办法,昨天开会,关于页面维护工作量过大的意见再次被提出,因此某些栏目的内容势必需要自动更新,因此标题需要自动截断。

于是我需要获得字符串的尺寸,像素单位。

.NET 的 System.Drawing 空间中,Graphics 对象提供了能达到此目的的方法:MeasureString(),其重载信息参见 MSDN。

昨晚试验的取得字符串长度的代码段如下:
private void MainForm_Paint(object sender, System.Windows.Forms.PaintEventArgs e){ Font font = new Font("Tahoma", 11, GraphicsUnit.Pixel); SizeF size = e.Graphics.MeasureString(drawText, font); this.Text = size.Width.ToString(); e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, size.Width, size.Height); e.Graphics.DrawString(drawText, font, Brushes.Black, new PointF(0, 0));}

目前感觉取得的宽度像素值略大于理论值。明天继续完善之~

时间: 2024-04-18 07:09:21

如何获取字符串的像素尺寸?的相关文章

Java简单获取字符串像素的方法_java

本文实例讲述了Java简单获取字符串像素的方法.分享给大家供大家参考,具体如下: 计算字符串的像素长度与高度: Graphics2D g = (Graphics2D)Toolkit.getDefaultToolkit(). getImage("imgname").getGraphics(); // 设置大字体 Font font = new Font("楷体", Font.ITALIC | Font.BOLD, 72); g.setFont(font); FontR

JavaScript获取图片的原始尺寸

页面里的img元素,想要获取它的原始尺寸,以宽度为例可能首先想到的就是width,如下 <img src=http://www.update8.com/Web/Javascript/"http://img11.360buyimg.com/da/g14/M07/01/0E/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg"> <script>     var img = document.getElementsB

通过动态编译获取字符串表达的值

看到许多人经常问到这个问题: 怎么由字符串 "126 + (256 - 2^4 )",或者怎么判断 "115 > 56 || 14<45"的结果等等,在MSDN上查了查,写了一个Eval类 /******************************************************************* 文件名:       Eval.cs** Copyright (c) 1999 -2003 ** 创建人:       Phoen

C#: 通过动态编译获取字符串所表达的值

编译|动态|字符串 看到许多人经常问到这个问题: 怎么由字符串 "126 + (256 - 2^4 )",或者怎么判断 "115 > 56 || 14<45"的结果等等,在MSDN上查了查,写了一个Eval类 /******************************************************************* 文件名: Eval.cs** Copyright (c) 1999 -2003 ** 创建人: Phoenix

scanf和gets获取字符串时的区别

在C语言中,能构获取字符串的函数至少有两个: 1.scanf() 所在头文件:stdio.h 语法:scanf("格式控制字符串",变量地址列表); 接受字符串时:scanf("%s",字符数组名或指针); 2.gets() 所在头文件:stdio.h 语法:gets(字符数组名或指针); 两者在接受字符串时: 1.不同点: scanf不能接受空格.制表符Tab.回车等: 而gets能够接受空格.制表符Tab和回车等: 2.相同点: 字符串接受结束后自动加'\0'.

ASP获取字符串长度的自定义函数

ASP获取字符串长度的自定义函数 '----------------------------------------------------------------'' getStrLen' 获取字符长度,一个中文字符长度算 2' 参数:' str 需要获取长度的字符串' 返回值:整数 (字符串的长度)'----------------------------------------------------------------'Function GetStrLen(str)If IsNull

php获取字符串的长度及截取字符串

三.获取字符串的长度:strlen()函数 语法: int strlen(string str); 例: <?php echo strlen("www.bianceng.cn");?> 四.截取字符串:substr()函数 语法: substr(要截取的字符串,开始截取的位置,截取字符的个数) 例: <?php $a="www.bianceng.cn"; echo substr($a,13,2); //输出 cn?> 以上是小编为您精心准备的

JavaScript中如何获取图片的原始尺寸

页面里的img元素,想要获取它的原始尺寸,以宽度为例可能首先想到的就是width,如下 <img src="jpg/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg"> <script> var img = document.getElementsByTagName('img')[0] var width = getWH(img, 'width') // 690 </script> 这里使用的get

Windows Vista与Windows 7的任务栏像素尺寸对比

Windows 7最吸引人的新特性之一就是超级任务栏"SuperBar",不过功能强大的同时占用的屏幕面积也似乎大了一些,对于小尺寸显示器用户来说,可用空间会稍微更紧张一些.接下来我们就具体对比意义下Windows Vista和Windows 7任务栏的像素尺寸,其中Windows 7还有小图标和大图标两种模式.两个系统下都在快速启动栏设置IE和记事本两个图标,同时开启Firefox和计算器两个程序且在任务栏按钮上启用标题. 在Vista下,开始按钮.快速启动栏和程序按钮的横向尺寸分别