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