winform自定义控件(gdi+)——测量文本大小(MeasureString)
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)相关推荐
- winform自定义控件(gdi+)(12)——测量文本大小(MeasureString)
1.MeasureString(String, Font) 代码: string measureString = "Measure String";Font stringFont1 ...
- android插件数字,Android自定义控件实现带文本与数字的圆形进度条
本文实例为大家分享了Android实现圆形进度条的具体代码,供大家参考,具体内容如下 实现的效果图如下所示: 第一步:绘制下方有缺口的空心圆,称为外围大弧吧 anvas.clipRect(0, 0, ...
- TextView文本大小自动适配与TextView边距的去除
标题太难取了,其实本文主要就是讲如何控制文本大小,让其自动适配宽度,其次我们还需要精准控制Text的高度和宽度间距等属性. 一般我们的布局都是分 match parent 和 wrap content ...
- 【Android 应用开发】Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐 )
文章目录 一.测量文本真实边界 二.将文本中心点与给定中心点对齐 一.测量文本真实边界 Paint.getTextBounds() 函数原型如下 : public class Paint {/*** ...
- 5 控件固定大小_【聊技术】在Android中实现自适应文本大小显示
本周的聊技术话题和大家说说如何在Android中实现自适应文本大小显示. 想象一下,在布局中,通常显示文本的区域大小是固定的,但是文本长度并不总是固定的.比如列表中的文章标题.界面下方的按钮文本等等. ...
- android xml java混合编程_Android | 自动调整文本大小的 TextViews
简评:Auto-Sizing TextViews -- 当 TextView 的布局边界尺寸发生变化时,文本大小可以跟着自动缩放调整. 有时候我们需要 TextView 根据放入的内容来改变其文本大小 ...
- 【聊技术】在Android中实现自适应文本大小显示
本周的聊技术话题和大家说说如何在Android中实现自适应文本大小显示. 想象一下,在布局中,通常显示文本的区域大小是固定的,但是文本长度并不总是固定的.比如列表中的文章标题.界面下方的按钮文本等等. ...
- 计算文本大小,将汉字转拼音
// 计算文本大小 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17 ...
- (一)c#Winform自定义控件-基类控件-HZHControls
官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...
最新文章
- PHP复制和移动目录
- leetcode-521-Longest Uncommon Subsequence I
- win7/IE8无法加载QCbin的插件
- tableau实战系列(八)-用数据桶实现图表的固定轴距
- 在3kbps的带宽下还能清晰地语音聊天?
- 在nodejs环境里使用浏览器环境下的document对象
- 工作者对象HttpWorkerRequest
- java 线程池 wait,Java 多线程 之 wait等待 线程实例
- 55 FI配置-财务会计-固定资产-主数据-定义4-字符评估组
- 60-100-032-使用-MySQL大小写敏感的解决方法
- java之正则表达式、日期操作
- perl语言书籍教程推荐
- 对不起,学会这些 Linux 知识后,我有点飘
- 金山系不惧微软,前有WPS力扛Office,后有eversheet接力再战
- android广告赚钱[转]
- SQL注入漏洞 | iwebsec
- win环境20分钟搭建php+sql服务器Apache+php+mysql在windows下的安装与
- Dremel学习总结1
- java8-stream新特性详解及实战
- 163邮箱申请注册条件,邮件注册申请,邮箱的格式怎么写?