Использование GDI + для рисования текста на стекле:
graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);
Вы заметите, что текст с включенным ClearType очень плохо отображается на стекле:
А вот с отключенным стеклом текст, конечно, рисовать нормально:
Для сравнения: Сглаживание шрифтов сглаживанием:
А вот без сглаживания шрифтов:
Примечание. Никакое сглаживание шрифтов не выглядит лучше, чем на самом деле, потому что StackOverflow изменяет размер изображений на вашем мониторе.
Как нарисовать текст ClearType на стекле?
Примечания
- Win32 родной
- не .NET (т.е. родной)
- не Winforms (т.е. родной)
- GDI + (т.е. родной)
Марк предполагает, что вы не можете соблюдать предпочтения пользователя для рендеринга текста (например, «SystemDefault
». ClearType не работает на стекле, и вы не можете его использовать.
Другими словами, если вы выполняете рендеринг на стекле, вы должны переопределить рендеринг текста с помощью:
graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);
В противном случае вы должны оставить TextRenderingHint
по умолчанию TextRenderingHintSystemDefault
.