欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# MeasureString測(cè)量字符串函數(shù)的使用方法

 更新時(shí)間:2014年10月22日 14:00:57   投稿:mdxy-dxy  
這篇文章主要介紹了C# MeasureString測(cè)量字符串函數(shù)的使用方法,需要的朋友可以參考下

(1)在窗體中測(cè)量字符串

使用System.Drawing.Graphics的MeasureString函數(shù) 主要用它的2個(gè)重載函數(shù)

(1)Graphics.MeasureString 方法 (String, Font) ,測(cè)量用指定的 Font 對(duì)象繪制的指定字符串,返回 SizeF 結(jié)構(gòu)。返回的SizeF就是測(cè)量字符串的打印在屏幕上的寬度和高度,默認(rèn)以像素為單位,與Form中控件Size的單位一致。該函數(shù)重載中還含有一個(gè) StringFormat參數(shù),如果未指定這個(gè)參數(shù),那么將使用StringFormat.GenericDefault返回的StringFormat進(jìn)行測(cè)量,這個(gè)測(cè)量結(jié)果比較大。如果使用StringFormat.GenericTypographic參數(shù)測(cè)量,結(jié)果比較小。

(2)public SizeF MeasureString(string text,Font font,SizeF layoutArea,StringFormat stringFormat, out int charactersFitted, out int linesFilled); 這個(gè)函數(shù)能測(cè)量使用指定字體和指定矩形區(qū)域中能容納字符串的長(zhǎng)度和行數(shù),其中,layoutArea為一個(gè)容納字符串的矩形區(qū)域; stringFormat為字符串的對(duì)齊方式,字符間距,是否保持詞組在同一行等屬性(這個(gè)參數(shù)很重要);charactersFitted返回能容納的字符的數(shù)目;linesFilled返回能容納字符的行數(shù)。 重點(diǎn):默認(rèn)的情況下Graphics返回的結(jié)果是用像素作為單位,設(shè)置PageUnit屬性可以改變這種狀態(tài)。窗體中創(chuàng)建Graphics實(shí)例直接可以使用Control.CreateGraphics 方法。

(2)在打印時(shí)測(cè)量字符串(ActiveReport)

兩點(diǎn)注意:

(1) Graphics對(duì)象由打印機(jī)創(chuàng)建pDoc.PrinterSettings.CreateMeasurementGraphics();
(2) 由于帳票的控件Size均以inch(英寸)或者厘米為單位,所以獲得Graphics實(shí)例后把PageUnit屬性設(shè)置為GraphicsUnit.Inch;

下面是其它網(wǎng)友的補(bǔ)充:

做一個(gè)畫(huà)圖表的系統(tǒng),圖表有標(biāo)題框,標(biāo)題框的大小是固定的,它不是Textbox,是通過(guò)函數(shù)畫(huà)的一個(gè)矩形,可以在里面輸入標(biāo)題,我如何得知輸入的字符串的空間長(zhǎng)度,不是Length.例如,我的標(biāo)題框的Width = 150, Heigth = 15 ,那有什么庫(kù)函數(shù)可以計(jì)算輸入的字符串的Width? 請(qǐng)大仙幫助小女子,謝謝
 

復(fù)制代碼 代碼如下:

Graphics vGraphics = CreateGraphics();
SizeF vSizeF = vGraphics.MeasureString("Zswang", Font);
Console.WriteLine(vSizeF);

 
 
復(fù)制代碼 代碼如下:

string cid = "abcdefg";
int len = cid.Length;
len就是字符串的長(zhǎng)度

 
 
可以使用TextRenderer.MeasureText以更精確的測(cè)量,代碼參考如下:

復(fù)制代碼 代碼如下:

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);

string str = "測(cè)試用的字符串";
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);
}

嘿嘿,問(wèn)題解決了,非常感謝zswang,MeasureString方法很好用,給你加分哦
也很感謝hbxtlhx

相關(guān)文章

  • c#調(diào)用api控制windows關(guān)機(jī)示例(可以重啟/注銷(xiāo))

    c#調(diào)用api控制windows關(guān)機(jī)示例(可以重啟/注銷(xiāo))

    本文介紹了c#控制windows關(guān)機(jī)、重啟、注銷(xiāo)的二種方法,分為調(diào)用windows自帶的shutdown.exe關(guān)機(jī)和調(diào)用API關(guān)機(jī)的方法
    2014-01-01
  • 深入理解C#管道式編程

    深入理解C#管道式編程

    這篇文章主要給大家介紹了關(guān)于C#管道式編程的介紹與實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • C#在Unity游戲開(kāi)發(fā)中進(jìn)行多線(xiàn)程編程的方法

    C#在Unity游戲開(kāi)發(fā)中進(jìn)行多線(xiàn)程編程的方法

    這篇文章主要介紹了C#在Unity游戲開(kāi)發(fā)中進(jìn)行多線(xiàn)程編程的方法,文中總結(jié)了Unity中使用多線(xiàn)程的幾種方式以及一款多線(xiàn)程插件的介紹,需要的朋友可以參考下
    2016-04-04
  • C#實(shí)現(xiàn)集合轉(zhuǎn)換成json格式數(shù)據(jù)的方法

    C#實(shí)現(xiàn)集合轉(zhuǎn)換成json格式數(shù)據(jù)的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)集合轉(zhuǎn)換成json格式數(shù)據(jù)的方法,涉及C#針對(duì)dataTable、Enumerable及Json格式數(shù)據(jù)的遍歷及轉(zhuǎn)換操作相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • C#/VB.NET中從?PDF?文檔中提取所有表格

    C#/VB.NET中從?PDF?文檔中提取所有表格

    這篇文章主要介紹了C#/VB.NET中從PDF文檔中提取所有表格,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • VS?Code里使用Debugger?for?Unity插件調(diào)試的方法(2023最新版)

    VS?Code里使用Debugger?for?Unity插件調(diào)試的方法(2023最新版)

    Debugger for Unity是一個(gè)非正式支持的,官方推薦的,應(yīng)用最廣的,Visual Studio Code上的Unity調(diào)試插件,這篇文章主要介紹了VS?Code里使用Debugger?for?Unity插件進(jìn)行調(diào)試(2023最新版),需要的朋友可以參考下
    2023-02-02
  • C#基于Mongo的官方驅(qū)動(dòng)手?jǐn)]一個(gè)Super簡(jiǎn)易版MongoDB-ORM框架

    C#基于Mongo的官方驅(qū)動(dòng)手?jǐn)]一個(gè)Super簡(jiǎn)易版MongoDB-ORM框架

    本文給大家分享C#基于Mongo的官方驅(qū)動(dòng)手?jǐn)]一個(gè)簡(jiǎn)易版MongoDB-ORM框架,是一款屬于super簡(jiǎn)易版的,通過(guò)圖文的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-05-05
  • c# winform取消右上角關(guān)閉按鈕的實(shí)現(xiàn)方法

    c# winform取消右上角關(guān)閉按鈕的實(shí)現(xiàn)方法

    本文是對(duì)c#中winform取消右上角關(guān)閉按鈕的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下。希望對(duì)大家有所幫助
    2013-10-10
  • C#導(dǎo)出pdf的實(shí)現(xiàn)方法(瀏覽器不預(yù)覽直接下載)

    C#導(dǎo)出pdf的實(shí)現(xiàn)方法(瀏覽器不預(yù)覽直接下載)

    這篇文章主要給大家介紹了關(guān)于C#導(dǎo)出pdf的實(shí)現(xiàn)方法,實(shí)現(xiàn)后瀏覽器不預(yù)覽就可以直接下載,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C#中遍歷Hashtable的4種方法

    C#中遍歷Hashtable的4種方法

    這篇文章主要介紹了C#中遍歷Hashtable的4種方法,本文直接給出實(shí)例代碼,需要的朋友可以參考下
    2015-06-06

最新評(píng)論