Pregunta

Antialiasing no se puede apagar en WPF.Pero quiero eliminar el aspecto borroso de las fuentes WPF cuando son pequeñas.

Una posibilidad sería utilizar un componente .net 2.0.Parece que perdería la capacidad de transparencia y la compatibilidad con Blend.Aunque nunca lo intenté.

¿Alguien tiene una solución para esto?¿Algún inconveniente?

Gracias

¿Fue útil?

Solución

¿Has probado a poner un WindowsFormsHost control en una ventana/control WPF?Eso permitirá que WPF represente un control WinForms.

ACTUALIZACIÓN Noviembre 2012:Esta pregunta y respuesta tiene 4 años. Desde entonces, la representación de texto ha mejorado en WPF..No coloque controles de WinForms en aplicaciones WPF;Esa fue una forma pirateada de arreglar la representación de fuentes.Ya no es necesario.

Otros consejos

Anti-Alias ​​se puede desactivar a partir de WPF 4.0 con la siguiente opción:

TextOptions.TextFormattingMode="Display"

SnapsToDevicePixels no tiene absolutamente ningún efecto en la representación del texto.

Microsoft tiene un blog dedicado a la representación de texto en WPF aquí Blog de texto de WPF

Las cosas definitivamente han mejorado en .NET 4.0.

Compensa los objetos que dibujas, que no quieres que tengan suavizado, en 0,5 px.Esto hará que el motor de dibujo dibuje en los píxeles reales, en lugar de dibujar en el borde de los píxeles (que es el valor predeterminado).Cuando se dibuja en el borde de un píxel, el antialiasing normalmente se produce en los píxeles circundantes.

Esto es similar al dibujo de Quarts en Mac.

Editar:Lo siento, no leí la pregunta.Esto no funciona con fuentes, sólo con formas.Sin embargo, dejaré el comentario aquí como referencia.

Intenta usar el UIElement.SnapsToDevicePixels propiedad en los elementos de la interfaz de usuario de su ventana.La gente tiende a informar que funciona mejor para gráficos y líneas, pero también he notado una mejora en la representación del texto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top