我正在创建这样的 Font
对象:
var font = new Font(font_name, font_size);
其中font_name
从System.Drawing.FontFamily.Families
获得。我使用:
var char_renderer = Graphics.FromImage(char_image);
char_renderer.DrawString(ch.ToString(), font, new SolidBrush(Color.White), 0, 0);
只能通过获得此信息才能获得char指标(提前,kerning等)?
我在许多地方都发现我应该使用System.Windows.Media.GlyphTypeface
来获取指标,但是我找不到任何直接的方法来从Font
到GlyphTypeface
。
以下应有作用:
// 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);