1、MeasureString(String, Font)
代码:

string measureString = "Measure String";

Font stringFont1 = new Font("Arial", 60);
            SizeF layoutSize = new SizeF(200.0F, 50.0F);

// Measure string.
            SizeF stringSize = new SizeF();
            stringSize = e.Graphics.MeasureString(measureString, stringFont1);
            // Draw rectangle representing size of string.
            e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);
            // Draw string to screen.
            e.Graphics.DrawString(measureString, stringFont1, Brushes.Black, new PointF(0, 0));

输出:

说明:
测量的大小随着字体的增大而增大。

2、MeasureString(String, Font, SizeF)
代码:

// Set up string.
            string measureString = "Measure String";

Font stringFont1 = new Font("Arial", 6);
            SizeF layoutSize = new SizeF(200.0F, 50.0F);

// Measure string.
            SizeF stringSize = new SizeF();
            stringSize = e.Graphics.MeasureString(measureString, stringFont1, layoutSize);
            // Draw rectangle representing size of string.
            e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);
            // Draw string to screen.
            e.Graphics.DrawString(measureString, stringFont1, Brushes.Black, new PointF(0, 0));

Font stringFont2 = new Font("Arial", 16);
            stringSize = e.Graphics.MeasureString(measureString, stringFont2, layoutSize);
            // Draw rectangle representing size of string.
            e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0, 100F, stringSize.Width, stringSize.Height);
            // Draw string to screen.
            e.Graphics.DrawString(measureString, stringFont2, Brushes.Black, new PointF(0, 100));

Font stringFont3 = new Font("Arial", 56);
            // Set maximum layout size.
            stringSize = e.Graphics.MeasureString(measureString, stringFont3, layoutSize);
            // Draw rectangle representing size of string.
            e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 300F, stringSize.Width, stringSize.Height);
            // Draw string to screen.
            e.Graphics.DrawString(measureString, stringFont3, Brushes.Black, new PointF(0, 30

输出:

说明:
最后一个size指定了文本的最大区域,当字体超出最大区域的时候,矩形就不能包含字体了。

3、MeasureString(String, Font, Int32)
最后一个参数限制宽度,功能和MeasureString(String, Font, SizeF)相同。

4、MeasureString(String, Font, PointF, StringFormat)
代码:

// Set up string.
            string measureString = "Measure String";
            Font stringFont = new Font("Arial", 16);

// Set point for upper-left corner of string.
            float x = 50.0F;
            float y = 50.0F;
            PointF ulCorner = new PointF(x, y);

// Set string format.
            StringFormat newStringFormat = new StringFormat();
            newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical;

// Measure string.
            SizeF stringSize = new SizeF();
            stringSize = e.Graphics.MeasureString(measureString, stringFont, ulCorner, newStringFormat);

// Draw rectangle representing size of string.
            e.Graphics.DrawRectangle(new Pen(Color.Red, 1), x, y, stringSize.Width, stringSize.Height);

// Draw string to screen.
            e.Graphics.DrawString(measureString, stringFont, Brushes.Black, ulCorner, newStringFormat);

输出

说明:可以指定文本格式
————————————————
版权声明:本文为CSDN博主「上位机软件」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34059233/article/details/119911808

winform自定义控件(gdi+)——测量文本大小(MeasureString)相关推荐

  1. winform自定义控件(gdi+)(12)——测量文本大小(MeasureString)

    1.MeasureString(String, Font) 代码: string measureString = "Measure String";Font stringFont1 ...

  2. android插件数字,Android自定义控件实现带文本与数字的圆形进度条

    本文实例为大家分享了Android实现圆形进度条的具体代码,供大家参考,具体内容如下 实现的效果图如下所示: 第一步:绘制下方有缺口的空心圆,称为外围大弧吧 anvas.clipRect(0, 0, ...

  3. TextView文本大小自动适配与TextView边距的去除

    标题太难取了,其实本文主要就是讲如何控制文本大小,让其自动适配宽度,其次我们还需要精准控制Text的高度和宽度间距等属性. 一般我们的布局都是分 match parent 和 wrap content ...

  4. 【Android 应用开发】Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐 )

    文章目录 一.测量文本真实边界 二.将文本中心点与给定中心点对齐 一.测量文本真实边界 Paint.getTextBounds() 函数原型如下 : public class Paint {/*** ...

  5. 5 控件固定大小_【聊技术】在Android中实现自适应文本大小显示

    本周的聊技术话题和大家说说如何在Android中实现自适应文本大小显示. 想象一下,在布局中,通常显示文本的区域大小是固定的,但是文本长度并不总是固定的.比如列表中的文章标题.界面下方的按钮文本等等. ...

  6. android xml java混合编程_Android | 自动调整文本大小的 TextViews

    简评:Auto-Sizing TextViews -- 当 TextView 的布局边界尺寸发生变化时,文本大小可以跟着自动缩放调整. 有时候我们需要 TextView 根据放入的内容来改变其文本大小 ...

  7. 【聊技术】在Android中实现自适应文本大小显示

    本周的聊技术话题和大家说说如何在Android中实现自适应文本大小显示. 想象一下,在布局中,通常显示文本的区域大小是固定的,但是文本长度并不总是固定的.比如列表中的文章标题.界面下方的按钮文本等等. ...

  8. 计算文本大小,将汉字转拼音

    // 计算文本大小 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17 ...

  9. (一)c#Winform自定义控件-基类控件-HZHControls

    官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...

最新文章

  1. PHP复制和移动目录
  2. leetcode-521-Longest Uncommon Subsequence I
  3. win7/IE8无法加载QCbin的插件
  4. tableau实战系列(八)-用数据桶实现图表的固定轴距
  5. 在3kbps的带宽下还能清晰地语音聊天?
  6. 在nodejs环境里使用浏览器环境下的document对象
  7. 工作者对象HttpWorkerRequest
  8. java 线程池 wait,Java 多线程 之 wait等待 线程实例
  9. 55 FI配置-财务会计-固定资产-主数据-定义4-字符评估组
  10. 60-100-032-使用-MySQL大小写敏感的解决方法
  11. java之正则表达式、日期操作
  12. perl语言书籍教程推荐
  13. 对不起,学会这些 Linux 知识后,我有点飘
  14. 金山系不惧微软,前有WPS力扛Office,后有eversheet接力再战
  15. android广告赚钱[转]
  16. SQL注入漏洞 | iwebsec
  17. win环境20分钟搭建php+sql服务器Apache+php+mysql在windows下的安装与
  18. Dremel学习总结1
  19. java8-stream新特性详解及实战
  20. 163邮箱申请注册条件,邮件注册申请,邮箱的格式怎么写?

热门文章

  1. 使用H5新增的canvas绘制图形
  2. iPhone 4S/5/5C、iPad 2/3/4统统悲剧!
  3. 问答|多重曝光相关论文有哪些?
  4. 如何禁用Mac防火墙激活软件
  5. 知识工程重点知识介绍-3
  6. Python之简单的计算及输入输出
  7. 787. K 站中转内最便宜的航班(加权有向图的最短路径)
  8. 南昌二中高考2021成绩查询,2021年江西高考主要科目考试结束 6月23日公布成绩
  9. 【】每日15题,2019.11.01日04点财会类考试习题答案
  10. 如何提高国庆幸福感?VR全景让你的假期不寂寞