首页 > 解决方案 > 在c#中绘制文本时的字体高度

问题描述

绘制字符串时,我通过调用myGraphics.MeasureString(myString, myFont);. 实验我发现这个方法总是为任何字符串或某种字体的单个字符返回相同的高度。所以这个值似乎是字体的一个特征,而不是字符串的一个特征。但是字体类中没有提供此信息的属性或方法。字体类有几个返回高度信息的属性/方法,但它们都没有给出与字符串测量相同的值。例子:

using (Graphics myGraphicsTemp = CreateGraphics())
{               
       Font myFont = new Font("Microsoft Sans Serif", 9F);
       var size = myFont.Size;           //  9
       var height = myFont.Height;       // 14
       var lineSpacing = myFont.GetHeight();  // 13.5820293
       var measuredHeight = myGraphicsTemp.MeasureString("1", myFont).Height; // 15.0820284
}

我需要在我的代码中的几个位置由字符串测量方法给出的高度。所以我measuredHeight通过测量一个任意选择的字符来设置一个变量(就像在我的例子中一样)。这行得通,但我认为这有一种“强烈的气味”。有没有更好的方法来找到所需的值?我发现了以下问题(字体的宽度和高度),但它没有回答我的问题。

标签: c#graphics

解决方案


推荐阅读