当前位置: 首页 > 编程笔记 >

C# MeasureString测量字符串函数的使用方法

冯通
2023-03-14
本文向大家介绍C# MeasureString测量字符串函数的使用方法,包括了C# MeasureString测量字符串函数的使用方法的使用技巧和注意事项,需要的朋友参考一下

(1)在窗体中测量字符串

使用System.Drawing.Graphics的MeasureString函数 主要用它的2个重载函数

(1)Graphics.MeasureString 方法 (String, Font) ,测量用指定的 Font 对象绘制的指定字符串,返回 SizeF 结构。返回的SizeF就是测量字符串的打印在屏幕上的宽度和高度,默认以像素为单位,与Form中控件Size的单位一致。该函数重载中还含有一个 StringFormat参数,如果未指定这个参数,那么将使用StringFormat.GenericDefault返回的StringFormat进行测量,这个测量结果比较大。如果使用StringFormat.GenericTypographic参数测量,结果比较小。

(2)public SizeF MeasureString(string text,Font font,SizeF layoutArea,StringFormat stringFormat, out int charactersFitted, out int linesFilled); 这个函数能测量使用指定字体和指定矩形区域中能容纳字符串的长度和行数,其中,layoutArea为一个容纳字符串的矩形区域; stringFormat为字符串的对齐方式,字符间距,是否保持词组在同一行等属性(这个参数很重要);charactersFitted返回能容纳的字符的数目;linesFilled返回能容纳字符的行数。 重点:默认的情况下Graphics返回的结果是用像素作为单位,设置PageUnit属性可以改变这种状态。窗体中创建Graphics实例直接可以使用Control.CreateGraphics 方法。

(2)在打印时测量字符串(ActiveReport)

两点注意:

(1) Graphics对象由打印机创建pDoc.PrinterSettings.CreateMeasurementGraphics();
(2) 由于帐票的控件Size均以inch(英寸)或者厘米为单位,所以获得Graphics实例后把PageUnit属性设置为GraphicsUnit.Inch;

下面是其它网友的补充:

做一个画图表的系统,图表有标题框,标题框的大小是固定的,它不是Textbox,是通过函数画的一个矩形,可以在里面输入标题,我如何得知输入的字符串的空间长度,不是Length.例如,我的标题框的Width = 150, Heigth = 15 ,那有什么库函数可以计算输入的字符串的Width? 请大仙帮助小女子,谢谢
 


Graphics vGraphics = CreateGraphics();

SizeF vSizeF = vGraphics.MeasureString("Zswang", Font);

Console.WriteLine(vSizeF);


 
 

string cid = "abcdefg";

int len = cid.Length;

len就是字符串的长度


 
 
可以使用TextRenderer.MeasureText以更精确的测量,代码参考如下:


protected override void OnPaint(PaintEventArgs e)

{

base.OnPaint(e);

string str = "测试用的字符串"; StringFormat format = new StringFormat(); format.Alignment = StringAlignment.Center; format.LineAlignment = StringAlignment.Center; Size size = TextRenderer.MeasureText(str, this.Font); Rectangle rect = new Rectangle(20, 20, size.Width, size.Height); TextRenderer.DrawText(e.Graphics, str, this.Font, rect, Color.Blue, Color.Yellow); e.Graphics.DrawRectangle(SystemPens.ControlDarkDark, rect); }

嘿嘿,问题解决了,非常感谢zswang,MeasureString方法很好用,给你加分哦
也很感谢hbxtlhx

 类似资料:
  • 本文向大家介绍C++的字符串分割函数的使用详解,包括了C++的字符串分割函数的使用详解的使用技巧和注意事项,需要的朋友参考一下 经常碰到字符串分割的问题,这里总结下,也方便我以后使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数说明:str为要分解的字符串,delim为分

  • 本文向大家介绍JavaScript使用replace函数替换字符串的方法,包括了JavaScript使用replace函数替换字符串的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript使用replace函数替换字符串的方法。分享给大家供大家参考。具体如下: JavaScript通过replace函数替换字符串,下面的代码将Visit Microsoft中的MicroS

  • 本文向大家介绍C#字符串的截取函数用法总结,包括了C#字符串的截取函数用法总结的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了C#常用的字符串截取函数用法。分享给大家供大家参考。具体分析如下: 在C#中字符串截取函数包括有substring 函数,Remove 函数,indexOf 函数,它们三个都可以对字符串进行截取操作,下面我们来分别介绍一下。 下面是截取字符串过程中我们必须知道的以下

  • 我正在寻找一种方法来检查字符串是否是周期性的,或者是否使用JavaScript。

  • 本文向大家介绍C#格式化数字字符串的方法,包括了C#格式化数字字符串的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#格式化数字字符串的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Oracle字符函数应用检测汉字的方法,包括了Oracle字符函数应用检测汉字的方法的使用技巧和注意事项,需要的朋友参考一下 -- 验证是否包含汉字 -- 对于全角字符,ascii值的范围是\uFF00-\uFFFF -- length求得是字符长度,lengthb求得是字节长度,汉字是多字节字符 以上所述是小编给大家介绍的Oracle字符函数应用检测汉字的方法,希望对大家有所帮助,