Я рисую несколько текстов на графическом объекте. С некоторыми шрифтами нарисованный текст имеет некоторое нежелательное вертикальное смещение.DrawString - нежелательное вертикальное смещение в некоторых шрифтах
Вот код:
Bitmap img = new Bitmap(Width, Height);
Graphics GraphicObject = Graphics.FromImage(img);
GraphicObject.TextRenderingHint = TextRenderingHint.AntiAlias;
GraphicObject.DrawRectangle(Pens.Red, X, Y, Width, Height);
StringFormat format = new StringFormat();
format.FormatFlags = StringFormatFlags.NoClip;
GraphicObject.DrawString(
"SampleText",
new FontFamily("Font_Name"),
Color.White,
new RectangleF(X, Y, Width, Height),
format
);
Как вы видите, позиция двух шрифтов неверны
Как я могу решить эту проблему?
Просьба предоставить некоторые рабочий фрагмент кода, чтобы люди могли испытать его. – tia
Не уверен, что это действительно неправильно; если вы посмотрите поближе, вы увидите, что в примере четыре также позволяют спускателям идти ниже прямоугольника. Я предполагаю, что все зависит от того, как шрифты определяют его свойства. - Также: попробуйте значительно улучшить способ рисования текста с помощью [TextRenderer] (https://msdn.microsoft.com/de-de/library/system .windows.forms.textrenderer% 28v = vs.110% 29.aspx) !! – TaW
@tia: фрагмент кода Обновлено. @TaW: Естественно, что если текст не может поместиться в прямоугольник, он выходит из окна ('StringFormatFlags.NoClip'). Моя проблема заключается в смещении текста от вершины прямоугольника! –