Zaplecze techniczne
Istnieje szczegółowy artykuł na temat renderowania tekstu WPF z jednego z menedżerów programu tekstowego WPF w witrynie windowsclient.net: klarowność tekstu w WPF .
Problem sprowadza się do tego, że WPF wymaga liniowego skalowania renderowania czcionek w celu płynnych animacji. Z drugiej strony Pure ClearType wymaga sporej swobody dzięki czcionce, która przesuwa pionowe łodygi do następnego piksela.
Różnica jest oczywista, jeśli porównamy klasyczny wzór „kaskadowy”. WinForms w lewym dolnym rogu, WPF w prawym górnym rogu:
Chociaż nie jestem fanem idiosynkrazji związanych z renderowaniem czcionek WPF, mogę sobie wyobrazić wrzawę, gdyby animacje skakały tak, jak robią to w kaskadzie WinForm.
Zabawa z rejestrem
Szczególnie interesujące było dla mnie łącze do artykułu MSDN „ Ustawienia rejestru ClearType ”, w którym wyjaśniono możliwe korekty rejestru po stronie użytkownika:
- Poziom ClearType: ilość podpowiedzi subpikseli
- Poziom gamma
- Struktura pikseli: sposób ułożenia kolorowych pasków w pikselu wyświetlacza
- Poziom kontrastu tekstu: dostosowuje szerokość lasek glifów w celu zwiększenia ciężaru czcionki
Zabawa z tymi ustawieniami tak naprawdę nie poprawiła podstawowego problemu, ale może pomóc, zmniejszając efekt krwawienia kolorów dla wrażliwych użytkowników.
Inne podejście
Najlepszą radą zawartą w artykule Text Clarity było zwiększenie rozmiaru i zmiana czcionki. Calibri działa dla mnie lepiej niż standardowy interfejs Segoe. Ze względu na jej popularność jako czcionki internetowej wypróbowałem również Verdana, ale ma ona nieprzyjemny skok wagi między 14 a 15 punktami, co jest bardzo widoczne podczas animowania rozmiaru czcionki.
WPF 4.0
WPF 4 będzie miał ulepszoną obsługę wpływania na renderowanie czcionek. W blogu tekstowym WPF znajduje się artykuł wyjaśniający zmiany. Co najważniejsze, obecnie istnieją (co najmniej) trzy różne rodzaje renderowania tekstu:
<grumble> To powinno wystarczyć dla każdego projektanta. </grumble>