C# 字符串度量
本文关键字:度量 字符串 | 更新日期: 2023-09-27 18:31:39
我想将字符串的长度测量成像素单位。我在网上搜索了2天,但没有运气。最后,我几分钟前从博客中找到了一些代码片段,并对其进行了一点修改。这是我的函数:
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-size"。
TextRenderer.MeasureText 方法是否在其度量中包含字符之间的空格?
16的单位是多少?是em,pt还是图形单元的单位 枚举?我真的没有得到 c# 定义的描述"em-size 单位参数指定的单位中的新字体。
正如其他人所说,自从您传递GraphicsUnit.Pixel以来,它是像素。
TextRenderer.MeasureText 方法是否包含 其测量中的字符?
是的。 它为您提供了整个文本块周围边界框的尺寸。
TextRenderer.MeasureString
确实考虑了空格。 在您的示例中,数字 16 以像素为单位。
虽然,我不确定你是否正确测量了你的字符串。 我认为您需要从str2measure
文本框中获取字体:
Size textSize = TextRenderer.MeasureText(str2measure.Text, str2measure.Font);
ans Q1.它只是像素,因为你正在传递图形单元像素。
答 Q2.它正在考虑整个文本块,无论内容是什么,甚至是空格。