C# MeasureString丈量字符串函數的應用辦法。本站提示廣大學習愛好者:(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