Making small fonts readable in WPF (.NET 3.5)

It’s a shame that ClearType is turned on in WPF by default and does not respect the operating system’s settings.

While this may be a good default for large Fonts, smaller fonts look blurry and a lot like colored patchworks.

I personally prefer crisp, pixel aligned fonts. Reading ClearType rendered text distracts and annoys me.

WPF’s font rendering engine does not support pixel alignment, so the only option to make text more readable, is to switch off ClearType and hope that anti-aliased greyscale rendering improves the experience.

To change these settings, the registry editor has to be used. Here is an article that explains how to adjust the ClearType settings for WPF.

We need to change registry entries for that: Go to the registry editor, open the key “HKEY_CURRENT_USER/Software/Microsoft/Avalon.Graphics”. Here you will find a folder for each monitor:

Now, for each display, set the ClearTypeLevel to 0.

Switching off ClearType results in greyscaled anti-aliased fonts. The font is rendered with relatively slim stems, especially when vertical lines lie right in between two pixels columns.

Luckily, the contrast level of the text can be adjusted, too. Its valid values range from 1 to 6: 1 (the default) results in very slim text, 6 appears bold. For me, a value of 3 is perfect: small fonts appear bold, but they are now much better readable.

So, to finalize the registry settings: Set the TextContrastLevel to 3 (or some other value depending on your preference).

I hope this works for you like it did for me.

yours
armin