Graphics的MeasureString方法,只要指定了字体和字符串后,用这个方法就能获得一个矩形的区域,这个区域是Graphics对象用DrawString方法在空间表面绘制字符串时所要的区域。
如果使用MeasureString去测量两个字符串,当StringFormat参数处于默认值时,一个在尾部有空格,一个在尾部没有空格,那么这两个字符串测量出来的宽度是一样的。例如“TextEditor” 和 “TextEditor ”的宽度是一样的。(全角和半角空格的命运一样,都被忽略不计了)。
对于这个问题,在参数StringFormat标志位是可以设定是不是要忽略尾部空格的。
在默认情况下,在测量字符串的长度时,GDI+会添加额外的1/6em长度,为悬垂的字形留出空间,例如斜体字符f。另外,宽度的算法也需要为某些称作grid fitting的添加空间。在对字形的轮廓进行数学表达,并把它映射到基于光栅的绘图表面上时,允许宽度有一些轻微的变化。
有时在测量字符串的长度时,不希望GDI+增加这个额外的长度。此时可以让GDI+使用StringFormat类,以特殊的方式处理文本。可以告诉GDI+使用特定的StringFormat对象,不增加额外的1/6em空间,而StringFormat对象是使用StringFormat.GenericTypography静态属性获得的。
实际应用中,也可以使用原型API GdipStringFormatGetGenericTypographic 直接创建带GenericTypography静态属性StringFormat。
此函数SDK支持的重载
MeasureString(String, Font)
MeasureString(String, Font, SizeF)
MeasureString(String, Font, Int32)
MeasureString(String, Font, PointF, StringFormat)
MeasureString(String, Font, SizeF, StringFormat)
MeasureString(String, Font, Int32, StringFormat)
MeasureString(String, Font, SizeF, StringFormat, Int32, Int32)
编程工具中如果安装有对应的SDK,可以直接使用,也可以使用API原型调用,方法类似。
MSDN中的介绍链接:[1]
参数
参数说明使用原型API参数介绍。
graphics          GDI+ graphics 对象
string                待处理的字符串
length              字符串长度
font                 字符串使用的字体
layoutRect              RectF结构,字符串输出矩形区域。
StringFormat          StringFormat类,用于指定字符串的样式,需要和文本输出函数的StringFormat相同。例如对齐,垂直排列等,会造成字符串在不同格式下输出矩形产生变化。
boundingBox              RectF结构,函数执行后装载的字符串位置信息,左上角X和Y,长度和宽度
codepointsFitted            暂不使用,NULL
linesFilled                      暂不使用,NULL

用指定的字体绘制时测量指定的字符串。

命名空间:   System.Drawing程序
集:  System.Drawing(在System.Drawing.dll中)

重载列表

  名称 描述
MeasureString (String,Font)

用指定的字体绘制时测量指定的字符串。

MeasureString (String,Font,Int32)

用指定的字体绘制时测量指定的字符串。

MeasureString (String,Font,Int32,StringFormat)

用指定的字体绘制时测量指定的字符串,并使用指定的StringFormat进行格式化。

MeasureString (String,Font,PointF,StringFormat)

用指定的字体绘制时测量指定的字符串,并使用指定的StringFormat进行格式化。

MeasureString (String,Font,SizeF)

在指定布局区域内用指定的Font绘制时,测量指定的字符串。

MeasureString (String,Font,SizeF,StringFormat)

用指定的字体绘制时测量指定的字符串,并使用指定的StringFormat进行格式化。

MeasureString (String,Font,SizeF,StringFormat,Int32,Int32)

用指定的字体绘制时测量指定的字符串,并使用指定的StringFormat进行格式化。

Graphics.MeasureString用指定的字体绘制时测量指定的字符串相关推荐

  1. html中canvas设置透明度,HTML5 Canvas绘制时指定颜色与透明度的方法

    这篇文章主要介绍了HTML5 Canvas绘制时指定颜色与透明度的方法,包括全局透明globalAlpha属性的介绍,需要的朋友可以参考下 指定颜色 黑色是Canvas绘制的默认色彩,要想换一种颜色的 ...

  2. 测量string变量长度函数_利用Graphics::MeasureString函数测量字符串的宽度,高度

    我就吐一句槽,今天被这个函数完虐.... 当我们需要获得一个字符串的长度时(注意,不是length,这只是返回该字符串的字符个数),我们需要知道的是一个字符串的长度也就是一个字符串的宽,说到底就是像素 ...

  3. c# 计算空格宽度像素_C# WinForm,Graphics.MeasureString 计算不准确的坑

    Graphics.MeasureString 可以计算出指定字符串在给定字体Font的尺寸SizeF,它的计算有坑:如果把字符串拆开成一个一个单字字符串并逐个计算尺寸,然后把Width加起来,你会发现 ...

  4. Graphics.MeasureString 不能获得精确宽度的问题

    最近在为eBizPlat做一个代码编辑器,需要关键字高亮显示,每行都切成许多段,在输出时发现问题,用Graphics.MeasureString()函数算出的值比实际宽度大许多,分片输出的位置相差很大 ...

  5. .NET Graphics.MeasureString 的使用

    在画图过程中,Graphics.MeasureString可以取得字符串的宽度及高度等信息,对于字符串的存放坐标的计算非常有用,尤其是居中显示时. '------------------------- ...

  6. SpringBoot+Vue+Itext实现前端请求文件流的方式导出PDF时在指定位置添加照片

    场景 SpringBoot+Vue+Itext实现前端请求文件流的方式下载PDF: SpringBoot+Vue+Itext实现前端请求文件流的方式下载PDF_BADAO_LIUMANG_QIZHI的 ...

  7. 关于字体绘制的baseline (QT 和 D2D)

    常规字体绘制API调用: QT:QPainter::drawText D2D: ID2D1RenderTarget::DrawText 以上字体绘制某些特殊效果无法达到, 我们可以用Path绘制字体: ...

  8. 关于Paint了解text绘制时的基线位置关系/测量字符的宽度

    问题一:在自定义控件绘制文字的时候怎么确定文字的宽度(不是view的宽度),或者其中几个字符的宽度? 下面有两个方法,可以测量指定几个字符的宽度. /*** @param text 测量的String ...

  9. 阿里巴巴为什么让初始化集合时必须指定大小?

    来源 | Java中文社群(ID:javacn666) 哈喽,亲爱的小伙伴们,技术学磊哥,进步没得说!欢迎来到新一期的性能解读系列,我是磊哥. 今天给大家带来的是关于阿里巴巴<Java开发手册& ...

最新文章

  1. 下属能力很强,却犯了错误,该如何处理?处理不好会出问题
  2. 已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法...
  3. Linux基础命令---文本过滤colrm
  4. 数据挖掘常用的方法(分类,回归、聚类、关联规则)
  5. python元素元组抓7_Python7元组,字典,集合
  6. spi总线 上层调用_spi总线设备驱动分析
  7. Hadoop 回收站
  8. 一如此前的回应,王劲将景驰科技总部搬到了广州
  9. 导出数据到txt文本
  10. 设置指定ip访问mysql数据库
  11. rpc服务器不可用自动重启,出现RPC服务器不可用的解决方法
  12. 基本共射放大电路的动态分析
  13. 枯燥的Kotlin协程三部曲(中)——应用实战篇
  14. ​2021年度学习清单
  15. 音频怎么转换mp3格式?
  16. 赞美之外,Unity引擎3D引擎存在什么弊病?
  17. 代码复杂度分析——时间、空间复杂度
  18. 吕雉到底是一个怎样的人?
  19. 使用MSXML2解析XML文件
  20. C#中out和ref使用的区别

热门文章

  1. 攻防大牛在身边,这群白帽极客的故事太精彩!
  2. 接口测试中发送XML格式的post请求
  3. SAP-FI模块 处理自动生成会计凭证增强
  4. MyPsnCard 我的奖杯卡 V1.0 发布
  5. Qt实现动态时钟表盘的设计
  6. 约战精灵再临服务器维护,约战精灵再临进不了游戏怎么办_无法进入游戏解决方法...
  7. 基于 OC670X 设计的 LED 恒流应用指导书
  8. 序号47指标横向展示.xlsx_云南烟酒柜台展柜展示柜哪家好_尚式展示道具有限公司...
  9. MATLAB学习记录:记录模型/模型截图/参数配置/子系统封装/Mask
  10. 第一封信 / 友子,你还在等我么