Подтвердить что ты не робот

Aero: Как нарисовать текст ClearType на стекле?

Использование GDI + для рисования текста на стекле:

graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);

Вы заметите, что текст с поддержкой ClearType плохо рисует очень на стекле:

alt text

Но со стеклом отключить текст, конечно, нарисуйте штраф:

alt text

Для сравнения здесь Сглаживание шрифтов сглаживания:

alt text

И вот без сглаживания шрифтов:

alt text

Примечание. Сглаживание шрифтов выглядит лучше, чем на самом деле, потому что StackOverflow изменяет размеры изображений на вашем мониторе.

Как нарисовать текст ClearType на стекле?

Примечания

  • Win32 native
  • не .NET(например, native)
  • не Winforms (т.е. native)
  • GDI + (т.е. native)

Что указывает Марк, вы не можете соблюдать пользовательские настройки для текстового рендеринга (т.е. "SystemDefault". ClearType не работает на стекле, и вы не можете его использовать.

Другими словами, если вы выполняете рендеринг на стекле, вы должны переопределить рендеринг текста с помощью:

graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);

В противном случае вы должны оставить TextRenderingHint по умолчанию TextRenderingHintSystemDefault.

См. также

4b9b3361

Ответ 1

Проблема связана с тем, как выполняется рисование. Весь ваш текст нарисован на черном фоне, затем составлен на стеклянном фоне; полупрозрачный сглаживание шрифта сочетается с черным, чтобы сделать почти черный.