В приложении WinForms я пытаюсь измерить размер текста, который я хочу нарисовать без заполнения . Вот самый близкий, который я получил ...
protected override void OnPaint(PaintEventArgs e) {
DrawIt(e.Graphics);
}
private void DrawIt(Graphics graphics) {
var text = "123";
var font = new Font("Arial", 32);
var proposedSize = new Size(int.MaxValue, int.MaxValue);
var measuredSize = TextRenderer.MeasureText(graphics, text, font, proposedSize, TextFormatFlags.NoPadding);
var rect = new Rectangle(100, 100, measuredSize.Width, measuredSize.Height);
graphics.DrawRectangle(Pens.Blue, rect);
TextRenderer.DrawText(graphics, text, font, rect, Color.Black, TextFormatFlags.NoPadding);
}
... но как видно из результатов ...
... все еще имеется значительное количество набивки, особенно сверху и снизу. Есть ли способ измерить фактические границы нарисованных символов (с чем-то действительно ужасным, например, печатью изображения, а затем поиском нарисованных пикселей)?
Заранее спасибо.