如何在C#中获取字形指标

时间:2019-03-06 21:24:48

标签: c# fonts

我正在创建一个Font对象,如下所示:

var font = new Font(font_name, font_size);

font_name获得System.Drawing.FontFamily.Families的地方。我使用以下字符将char渲染为图像:

var char_renderer = Graphics.FromImage(char_image);
char_renderer.DrawString(ch.ToString(), font, new SolidBrush(Color.White), 0, 0);

是否只有通过获得此信息才能获取字符度量(提前,字距调整等)?

我发现很多地方应该使用System.Windows.Media.GlyphTypeface来获取指标,但是我找不到从GlyphTypefaceFont的直接方法。 / p>

1 个答案:

答案 0 :(得分:0)

以下方法应该起作用:

// create typeface from font
var typeface = new Typeface("Arial");

// create glyphtypeface
typeface.TryGetGlyphTypeface(out var glyphTypeface);

// retrieve metrics
glyphTypeface.AdvanceHeights.TryGetValue('S', out var advancedHeight);