Aero: Как нарисовать текст Cleartype на стекле?
-
27-09-2019 - |
Вопрос
Использование 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
.
Смотрите также
Решение
Проблема присущи к тому, как выполняется рисунок. Весь ваш текст рисуется на черном фоне, затем композитирован на стеклянный фон; Полупрозрачный сглаживание шрифта сочетается с черным, чтобы сделать рядом с черным.