2010-11-12 13 views
7

En mi otro (sin relación) question, @Meleak tenía SnapsToDevicePixels esparcido por todo el código (en su respuesta), descubrí que se usa para hacer que las cosas se vean más nítidas. Entonces la pregunta, ¿por qué no se usa en todas partes, ya que hará que las cosas se vean mejor? O hay desventajas que debo tener en cuenta? ¿Cuándo debería/no debería usarlo?¿Se debe usar UseLayoutRounding & SnapsToDevicePixels Always?

Respuesta

2

Haciendo eso deshabilita subpixel rendering, que mejora la nitidez pero también derrota WPF's resolution independence. Puede ser bueno o malo, dependiendo de lo que esté haciendo en su aplicación, en términos de gráficos.

Consulte Pixel Snapping en MSDN para obtener una explicación completa.

+21

Deshabilita subpixel _positionning_, not _rendering_ (una ruta con trazo se seguirá representando con anti-aliasing). Simplemente redondea los límites de los componentes para que tengan coordenadas y tamaños enteros. Tampoco vence la independencia de la resolución, ya que el redondeo se realiza _después_ de convertir los valores independientes del dispositivo en espacio del dispositivo. –

+0

@Nicolas, bueno, es más difícil renderizarlo utilizando subpíxeles cuando todos sus límites se ajustan a los valores de píxel reales ... Su ejemplo de ruta de trazo funcionaría, pero p. las líneas rectas y los rellenos no. Además, dado que la independencia de la resolución gira en torno a ser independiente de la cuadrícula de píxeles, no puedo ver cómo se lograría cuando se ajuste a esa cuadrícula de píxeles. Incluso si el redondeo se lleva a cabo después de la conversión del sistema de coordenadas, probablemente habrá pequeñas diferencias en la representación entre dispositivos. –

+7

Sí, habrá pequeñas diferencias, pero su aplicación se verá aproximadamente igual en 96 o 300 ppp. Eso es lo que quiero decir con "independencia de la resolución". –

Cuestiones relacionadas