Tips for improving your WPF text rendering experience

WPF uses the latest version of ClearType to render text. This version of ClearType has a few new features over the standard ClearType used in GDI and WinForms. You can read more about these features here.

We’ve found that a couple simple tips can improve your reading experience:

-Make sure your monitor is set to its native resolution, typically the maximum resolution possible. This can be adjusted through Control Panel-->Display Properties on XP or Control Panel--> Adjust screen resolution on Vista.

-Use the ClearType tuner PowerToy. This adjusts the system's ClearType settings including pixel orientation and Gamma. Though WPF's ClearType engine is separate from GDI and WinForms, WPF still picks up these system wide settings.

-For advanced users who are comfortable playing with regedit, there is one additional WPF ClearType setting that may help improve your experience: you can adjust the color level that WPF ClearType uses for sub-pixel anti-aliasing. At the moment this can only be tuned via registry keys, but we do have future plans to update the ClearType tuner to include this setting in a UI.

To adjust this you will need to create this new reg key:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\<displayName>\

With <displayName> typically being 'DISPLAY1'. You can adjust things independently if you have multiple monitors.

Then create the following DWORD with any value between 0 and 100 (base 10):

ClearTypeLevel

The default value of 100 is the maximum amount of color and provides the greatest utilization of sub-pixels. On LCD panels this is the most optimal setting for the majority of users. If you perceive color fringes or halos around your text at a normal reading distance tune the value lower (You will need to restart any WPF application to see the effects of the change). The value of 0 uses only grayscale anti-aliasing and no color. Note if 'font smoothing' is turned off or set to ‘anti-alias’ on the system level, WPF will automatically render using grayscale anti-aliasing. Due to our pixel independent architecture we cannot render aliased text even if ‘font smoothing’ is turned off completely.

-Chris Han