Как нарисовать строку без отступов

Я использую функцию GraphicsPath.AddString(), но она рисует текст с небольшим пространством вокруг текста. Есть идеи, как нарисовать строку без этого отступа, только пути текста?

Мой код такой:

GraphicsPath gp = new GraphicsPath();

gp.AddString(text, font.FontFamily, (int)font.Style, font.Size,
    boundsRectangle, format);

g.DrawPath(pen, gp);

person MHMr    schedule 04.04.2013    source источник
comment
Что вы установили в FormatFlags в параметре StringFormat?   -  person plinth    schedule 04.04.2013
comment
спасибо плинтусу за ответ, StringFromat _format = StringFormat.GenericDefault; есть что-то может решить проблему во флагах?   -  person MHMr    schedule 04.04.2013
comment
stackoverflow.com/questions/118686/   -  person Ken Kin    schedule 05.04.2013
comment
Не могли бы вы опубликовать снимок? Насколько велико пространство?   -  person King King    schedule 01.06.2013


Ответы (1)


То, что происходит под капотом, вероятно, использует Graphics.MeasureString () из документации:

GDI + добавляет небольшое количество (1/6 em) к каждому концу каждой отображаемой строки. Эта 1/6 em позволяет ›использовать глифы с выступающими концами (например, курсивом« f »), а также дает GDI + небольшую› свободу действий, чтобы помочь с расширением сетки.

Действие DrawString по умолчанию будет работать против вас при отображении соседних прогонов:

Во-первых, StringFormat по умолчанию добавляет дополнительные 1/6 em на каждом конце каждого вывода; Во-вторых, когда ширина сетки меньше расчетной, веревке разрешается сжиматься до em. Чтобы избежать этих проблем:

Всегда передавайте MeasureString и DrawString StringFormat на основе типографского ›StringFormat (GenericTypographic). Установите для Graphics TextRenderingHint значение TextRenderingHintAntiAlias. Этот метод рендеринга ›использует сглаживание и позиционирование субпиксельных глифов, чтобы избежать необходимости подгонки к сетке, и› поэтому по своей природе не зависит от разрешения.

Похоже, вы сможете исправить это, используя правильный StringFormat.

person Marissa    schedule 09.07.2013
comment
К сожалению, это не работает. Он удаляет горизонтальные отступы, но вертикальные отступы остаются. - person BlueRaja - Danny Pflughoeft; 06.10.2019