我想測量字符串的長度爲像素單位。我在網上搜索了2天,但沒有運氣。最後,我幾分鐘前從博客中發現了一些代碼段,並對其進行了一些修改。這裏是我的功能:C#字符串測量
private void cmdMeasure_Click(object sender, EventArgs e)
{
Font fntStyle = new Font("Arial", 16, FontStyle.Regular, GraphicsUnit.Pixel);
Size textSize = TextRenderer.MeasureText(str2measure.Text, fntStyle);
MessageBox.Show(textSize.ToString());
}
問:
什麼是16的單位?是em,pt還是GraphicsUnit枚舉的單位?我沒有真正得到由c#定義的描述,「單位參數指定的單位中的新字體的em尺寸」。
TextRenderer.MeasureText方法是否包含其度量中的字符之間的空格?
繼文檔[here](http://msdn.microsoft.com/en-us/library/ms141987.aspx)和[here](http://msdn.microsoft.com/en-us/library /system.drawing.graphicsunit.aspx)顯示16以像素爲單位,因爲參數'GraphicsUnit.Pixel'被提供給Font構造函數。 – 2012-04-18 03:47:45
由於GraphicsUnit.Pixel將會像素化,並且對於大多數字體來說意味着大寫字母W的高度。字符可以自然重疊,並且測量將返回最終大小,從左側到右側加上邊緣-填充。你也可以使用Graphics.MeasureCharacterRanges。 – SimpleVar 2012-04-18 03:52:41
http://stackoverflow.com/questions/451903/how-can-i-convert-a-string-length-to-a-pixel-unit – 2012-04-18 03:56:30