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 方法是否在其度量中包含字符之间的空格?

C# 字符串度量

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.它正在考虑整个文本块,无论内容是什么,甚至是空格。