Contexte technique
Il existe un article détaillé sur le rendu de texte WPF de l'un des gestionnaires de programme de texte WPF sur windowsclient.net: Clarté du texte dans WPF .
Le problème se résume au fait que WPF a besoin d'un rendu de police à mise à l'échelle linéaire pour des animations fluides. Pure ClearType, en revanche, prend un peu de liberté avec la police pour pousser les tiges verticales dans le pixel suivant.
La différence est évidente si l'on compare le modèle classique de "cascade". WinForms sur le côté inférieur gauche, WPF sur le côté supérieur droit:
Bien que je ne sois pas non plus fan des idiosyncrasies de rendu des polices de WPF, je peux imaginer le bruit si les animations sautaient comme elles le font dans la cascade Winforms.
Jouer avec le registre
Le lien vers l'article MSDN " ClearType Registry Settings ", qui explique les ajustements possibles côté utilisateur dans le registre, m'a particulièrement intéressé :
- Niveau ClearType: quantité d'indices de sous-pixels
- Niveau gamma
- Structure des pixels: comment les bandes de couleur dans un pixel d'affichage sont organisées
- Niveau de contraste du texte: ajuste la largeur des tiges de glyphe pour alourdir la police
Jouer avec ces paramètres n'a pas vraiment amélioré le problème sous-jacent, mais peut aider en réduisant l'effet de saignement de couleur pour les utilisateurs sensibles.
Une autre approche
Le meilleur conseil donné par l'article sur la clarté du texte était d'augmenter la taille de la police et de changer la police. Calibri fonctionne mieux pour moi que l'interface utilisateur Segoe standard. En raison de sa popularité en tant que police Web, j'ai également essayé Verdana, mais son poids entre 14pt et 15pt est très visible lors de l'animation de la taille de la police.
WPF 4.0
WPF 4 aura une meilleure prise en charge pour influencer le rendu des polices. Il existe un article sur le blog de texte WPF expliquant les modifications. Plus important encore, il existe maintenant (au moins) trois types différents de rendu de texte:
<grumble> Cela devrait être assez de corde pour chaque concepteur. </grumble>