2010-11-12 5 views
7

Dans mon autre (non apparenté) question, @Meleak avait SnapsToDevicePixels dispersés dans le code (dans sa réponse), j'ai découvert qu'il est utilisé pour rendre les choses plus nettes. Donc, la question, pourquoi n'est-elle pas utilisée partout, car cela va rendre les choses plus belles? OU y a-t-il des inconvénients dont je dois être conscient? Quand dois-je/ne devrais-je pas l'utiliser?Est-ce que UseLayoutRounding et SnapsToDevicePixels doivent toujours être utilisés?

Répondre

2

Cela désactive subpixel rendering, ce qui améliore la netteté mais aussi les resolution independence de WPF. Cela peut être une bonne ou une mauvaise chose, en fonction de ce que vous faites dans votre application, graphique-sage.

Voir Pixel Snapping sur MSDN pour une explication complète.

+21

Il désactive le sous-pixel _positionning_, pas _rendering_ (un chemin strié continuera à être rendu avec anti-aliasing). Il arrondit simplement les limites des composants afin qu'ils aient des coordonnées et des tailles entières. Cela ne supprime pas non plus l'indépendance de la résolution, car l'arrondi est fait après la conversion des valeurs indépendantes du périphérique en espace périphérique. –

+0

@Nicolas, eh bien, il est plus difficile d'obtenir des sous-pixels lorsque toutes vos limites sont alignées sur des valeurs de pixels réelles ... Votre exemple de tracé de contour fonctionnerait, mais par ex. les lignes droites et les remplissages ne le feraient pas. En outre, étant donné que l'indépendance de la résolution tourne autour de l'indépendance vis-à-vis de la grille de pixels, je ne vois pas comment cela pourrait être réalisé une fois accroché à cette grille de pixels. Même si l'arrondi est effectué après la conversion du système de coordonnées, il y aura probablement de petites différences de rendu entre les périphériques. –

+7

Oui, il y aura de petites différences, mais votre application sera globalement la même en 96 ou 300 dpi. C'est ce que je veux dire par indépendance de résolution. –

Questions connexes