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