3

我从 Java 后端获取文本的 x 和 y 坐标。现在我想在 C# (Graphics.DrawString) 中绘制该字体,就像 Java 那样。为此,我必须计算基线。我有一个代码使它适合某些字体,但不能正确呈现其他字体。

SizeF size = graphics.MeasureString(str, font);                                  
int descent = font.FontFamily.GetCellDescent(font.Style);
float factor = font.Size / font.FontFamily.GetEmHeight(font.Style);
float leadingCalc =  (ascent * factor + descent * factor) - emHeight * factor;
graphics.DrawString(str + "", font, brush, x, y - font.Height + descent * factor + leadingCalc);   

问题是,是否有人知道计算基线更精确或更好的方法?

4

0 回答 0