国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C# MeasureString測量字符串函數的使用方法

2019-10-29 21:42:46
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 景洪市| 阳城县| 营口市| 白城市| 徐汇区| 静宁县| 绵竹市| 凉城县| 遂宁市| 政和县| 绥江县| 凤凰县| 车险| 肇庆市| 石柱| 锡林浩特市| 建阳市| 枞阳县| 宜阳县| 项城市| 大悟县| 辉县市| 瓦房店市| 南昌市| 巴林左旗| 内黄县| 曲沃县| 南涧| 通渭县| 隆昌县| 连江县| 禹州市| 隆尧县| 得荣县| 柘荣县| 同德县| 卢湾区| 铜山县| 崇义县| 玉环县| 三台县|