Техническое образование
Существует подробная статья о рендеринге текста WPF от одного из менеджеров текстовых программ WPF на windowsclient.net: Четкость текста в WPF .
Проблема сводится к тому, что WPF необходим линейный масштаб для визуализации шрифтов для плавной анимации. Pure ClearType, с другой стороны, занимает немного свободы с шрифтом, чтобы выдвигать вертикальные основы в следующий пиксель.
Разница очевидна, если сравнивать классический «каскадный» паттерн. WinForms в нижней левой части, WPF в верхней правой части:
While I'm no fan of WPF's font rendering idiosyncrasies either, I can imagine the clamor if the animations would jump like they do in the Winforms cascade.
Playing with the registry
Of special interest to me was the link to the MSDN article " Настройки реестра ClearType", что объясняет возможные пользовательские настройки в реестре:
- Уровень ClearType: количество субпиксельных хинтов
- Уровень гаммы
- Структура пикселя: как располагаются цветные полосы в пикселе дисплея
- Уровень контрастности текста: регулирует ширину основы глифа, чтобы сделать шрифт более толстым
Игра с этими настройками на самом деле не улучшила основной проблемы, но может помочь, уменьшив эффект цветового кровотечения для чувствительных пользователей.
Другой подход
Лучший совет, который дала статья Text Clarity, - это увеличение размера шрифта и изменение шрифта. Calibri работает для меня лучше, чем стандартный пользовательский интерфейс Segoe. В связи с его популярностью в качестве веб-шрифта, я тоже попробовал Verdana, но он имеет неприятный скачок в весе между 14pt и 15pt, что очень заметно при анимации размера шрифта.
WPF 4.0
В WPF 4 улучшена поддержка влияния на рендеринг шрифтов. В текстовом блоге WPF есть статья, объясняющая изменения. Наиболее заметно, что теперь есть (по крайней мере) три различных типа рендеринга текста:
Этого должно быть достаточно для каждого дизайнера.