【发布时间】:2012-04-29 10:57:15
【问题描述】:
我想将字符串的长度测量为像素单位。我在网上搜索了 2 天,但没有运气。最后,我在几分钟前从博客中找到了一些代码sn-p,并稍微修改了一下。这是我的功能:
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# 定义的描述“unit 参数指定的单位中新字体的 em-size”。
TextRenderer.MeasureText 方法是否在其度量中包含字符之间的空格?
【问题讨论】:
-
多亏了 GraphicsUnit.Pixel,它将以像素为单位,并且对于大多数字体意味着 - 大写字母 W 的高度。字符可以自然重叠,并且测量将从左侧返回最终大小 -从一侧到右侧加上边缘填充。您还可以使用 Graphics.MeasureCharacterRanges。
标签: c# winforms string units-of-measurement