如何在给定FontSize的情况下获取Font的LineHeight?它似乎根据字体不同而不一定连接到FontSize。我正在使用BlockLineHeight进行LineStackingStrategy。
澄清。我知道有确定总行高的方法。在这种情况下,我正在寻找从基线到字体顶部的高度(因此减去p的尾部等)。
如上图所示。我想要上升。
答案 0 :(得分:1)
如果您使用Graphics
对象进行绘制并参考,则可以执行此操作。
Font myFont = new Font("Verdana", 15);
SizeF fontSize = e.Graphics.MeasureString("my text", myFont);
然后会告诉您字符串的高度和宽度。您可以将其用于单行测试线高度。
或者通过这个答案:How to calculate font height in WPF? 您可以使用一些简单的计算轻松计算线高。
答案 1 :(得分:1)
FontFamily fontFamily = new FontFamily("Arial");
Font font = new Font(fontFamily, 16, FontStyle.Regular, GraphicsUnit.Pixel);
ascent = fontFamily.GetCellAscent(FontStyle.Regular);
ascentPixel = font.Size * ascent / fontFamily.GetEmHeight(FontStyle.Regular);