Buenas respuestas de Spencer y Martin en cuanto al cuando para alinear sus píxeles.
En cuanto a la forma en : Yo también desean señalar que hay que en WPF 4.0 tratar de usar la propiedad UseLayoutRounding
en lugar de SnapsToDevicePixels
.
UseLayoutRounding
hace lo que está haciendo compatible con Silverlight (SnapsToDevicePixels
no está disponible en Silverlight) ... y Microsoft también está alentando el uso de UseLayoutRounding
sobre SnapsToDevicePixels
en su documentation.
¿Cuál es la diferencia entre los dos? Bueno, una gran diferencia es que UseLayoutRounding
ocurre durante la fase de disposición mientras que SnapsToDevicePixels
ocurre durante la fase de renderizado. Esto me hace especular que UseLayoutRounding
es probablemente una forma más eficiente de avanzar (aunque no lo he confirmado).
Dicho todo esto, todavía habrá motivos para usar SnapsToDevicePixels
. De hecho, la documentación de MSDN apunta a uno. Agregaré otro: es solo con SnapsToDevicePixels
que puede usar las pautas para un control preciso.
Aquí hay algunos recursos sobre este tema (es decirajuste de píxeles y la claridad con imágenes, texto y gráficos):
Heh. Sé que mi respuesta fue un poco más de lo que estaba pidiendo ... pero este concepto (es decir, la independencia de resolución y los problemas resultantes que trae y cómo superarlos) a menudo puede ser un punto de frustration cuando se trabaja con WPF. Por lo menos, quería señalarle la nueva propiedad de WPF 4.0, UseLayoutRounding
.
ACTUALIZACIÓN
Sólo tengo que añadir que no veo a esto una y otra ... a veces funciona cuando SnapsToDevicePixels
UseLayoutRounding
no lo hace. Me gustaría poder decir por qué este es el caso, pero definitivamente, primero use UseLayoutRounding y si eso no funciona, no dude en probar SnapsToDevicePixels
.
¡Esa línea es tan nítida que puede cortarte!
Me gusta pensar que las líneas limpias y nítidas hacen que su aplicación se sienta profesional y cuidada. Entonces, mi consejo es usarlo donde sea que ayude a ese objetivo. – cplotts