本文主要介绍使用C# MeasureString测量字符串函数,有需要的朋友可以参考一下。
(1)测量表格中的字符串。
使用系统的MeasureString函数。Drawing.Graphics主要使用它的两个重载函数。
(1)图形。MeasureString方法(String,Font),该方法测量用指定的Font对象绘制的指定字符串,并返回SizeF结构。返回的SizeF测量屏幕上打印字符串的宽度和高度。默认值以像素为单位,这与窗体中控件大小的单位一致。函数重载还包含一个StringFormat参数。如果未指定此参数,则为StringFormat返回的StringFormat。会使用GenericDefault进行测量,测量结果比较大。如果使用参数字符串格式。通用排印来衡量,结果很小。
(2)public SizeF measures string(string text,Font font,SizeF layoutArea,StringFormat stringFormat,out int charactersFitted,out int lines filled);该函数可以测量指定字体和指定矩形区域可以容纳的字符串的长度和行数,其中layoutArea是可以容纳字符串的矩形区域;格式是字符串的对齐方式,字符间距,是否保持短语在同一行等属性(这个参数很重要);CharactersFitted返回可以容纳的字符数;LinesFilled返回可以容纳字符的行数。重要提示:默认情况下,Graphics返回的结果以像素为单位。设置PageUnit属性可以更改这种状态。您可以直接使用control.createGraphics方法在窗体中创建图形实例。
(2)在打印期间测量字符串(ActiveReport)
注意两点:
(1)图形对象由打印机pdoc . printer settings . createmeasurementgraphics()创建;
(2)因为帐户票证的控件大小以英寸或厘米为单位,所以PageUnit属性设置为GraphicsUnit。获得图形实例后的英寸;
以下是其他网友的补充:
制作一个图表绘制系统。图表有一个标题框,标题框的大小是固定的。它不是一个文本框,而是一个由函数绘制的矩形,您可以在其中输入标题。我如何知道输入字符串的空间长度,而不是长度?比如我的标题Width的宽度=150,Heigth=15,那么有什么库函数可以计算出输入字符串的宽度呢?求大仙帮帮小姑娘,谢谢。
复制代码如下:
graphics vGraphics=create graphics();
SizeF vSizeF=vGraphics。MeasureString('Zswang ',Font);
控制台。WriteLine(vSizeF);
复制代码如下:
string cid=' abcdefg
int len=cid。长度;
是len字符串的长度。
您可以使用TextRenderer。测量文本以更精确地测量。代码参考如下:
复制代码如下:
受保护的覆盖void OnPaint(PaintEventArgs e)
{
基地。OnPaint(e);
String=“用于测试的字符串”;
string format format=new string format();
格式。对齐=StringAlignment。居中;
格式。LineAlignment=StringAlignment居中;
Size size=TextRenderer。MeasureText(str,this。字体);
Rectangle rect=新矩形(20,20,大小。宽度,大小。身高);
TextRendererDrawText(例如,图形、字符串、this。字体,矩形,颜色。蓝色,彩色。黄色);
e.graphics . draw rectangle(system pens。ControlDarkDark,rect);
}
嘿嘿,问题已经解决了。非常感谢ZWang。MeasureString方法非常容易使用,给你加分。
也感谢hbxtlhx。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。