wpf internet-explorer-9 antialiasing cleartype directwrite

wpf - Desactivar Cleartype(texto suavizado) en IE9



internet-explorer-9 antialiasing (3)

Después de unos días de búsqueda, encontré un social.technet.microsoft.com/Forums/en/ieitprocurrentver/thread/… que me indicó una solución aquí: http://www.softwareninjas.ca/dwrite-dll-wrapper

Siga las instrucciones de esa página y eliminará el suavizado de IE9 (al menos la versión de 32 bits de IE, que es el IE predeterminado, incluso en Windows 7 de 64 bits). Lo he probado hasta ahora en una computadora portátil Win7 x64 y funcionó a la perfección.

Muchas gracias a Olivier Dagenais que construyó esto. Aquí hay un resumen técnico de cómo funciona su solución.

Es un proceso de dos pasos. Primero, debe deshabilitar ClearType en IE a través de una clave de registro. Esta es la misma configuración que estaba disponible en versiones anteriores de IE, pero se eliminó de la interfaz de usuario de IE porque dejó de funcionar en IE9.

[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Main] "UseClearType"="no"

Segundo, ahora que ClearType está deshabilitado, Windows recurrirá a una solución anti-aliasing que no sea de tipo clear. Ahora que el anti-alising alternativo también necesita ser desactivado. Citando el hilo de arriba:

Lo que queda es el suavizado de fuente (también conocido como sub-pixel rendering), y ese es el "efecto de desenfoque" que aún se ve después de desactivar el tipo claro.

En caso de que te lo preguntes, hay una manera de apagarlo también.

El método que utilicé para desactivar la maravilla de subpíxeles es crear un contenedor simple para dwrite.dll que intercepta y reenvía las llamadas a dwrite.dll real, lo que deshabilita el suavizado de fuentes en el proceso.

Puede descargarlo de: http://www.softwareninjas.ca/dwrite-dll-wrapper

Puede encontrar el código en https://softwareninjas.kilnhg.com/Repo/Open-Source/Group/DWrite-dll-Wrapper

Este fue un truco muy bueno. Probablemente algo frágil en las versiones de Windows y DirectX, pero hará el truco por ahora hasta que Microsoft se ponga de acuerdo para solucionar el problema subyacente de "no se puede desactivar el suavizado" en el propio IE.

También funciona para las aplicaciones que utilizan el control IE WebBrowser (también conocido como MSHTML), por lo que puede controlar el suavizado en una base de aplicación por aplicación. También funciona para el visor de Ayuda HTML.

Tenga en cuenta que la calidad del texto en el modo de estándares IE9 no es ideal. Específicamente, las fuentes pequeñas a veces tienen letras que a veces se ejecutan juntas sin el espacio habitual de un píxel entre ellas. Si representa la misma página en modo de compatibilidad (o su sitio utiliza una DTD no estricta u otra DTD que no cumple con los estándares), entonces se ve bien. Por lo tanto, hay un paso adicional para algunos sitios si desean la mejor representación de texto con alias: simplemente vea un sitio en modo de compatibilidad presionando el botón de compatibilidad en la barra de herramientas de IE.

Está bien documentado (por ejemplo, here ) que IE9 ignora la configuración de todo el sistema operativo para suavizar las fuentes (también conocido como anti-aliasing). Incluso si la suavización de fuentes y ClearType están deshabilitados en Windows, IE sigue mostrando fuentes con alias, que algunos usuarios tienen dificultades para leer, especialmente en tamaños de fuente pequeños.

¿Cómo puedo deshabilitar todo tipo de suavizado de fuentes (ClearType o de otra manera) en IE9?

Más detalles:

Nuestra empresa construye una aplicación web que utiliza muchas fuentes pequeñas. Con el lanzamiento de IE9, algunos de nuestros usuarios se han quejado de que el suavizado predeterminado de IE9 hace que nuestras fuentes pequeñas sean borrosas o borrosas. Por lo tanto, necesitamos ayudar a nuestros usuarios que han instalado IE9 y que desean desactivar el suavizado.

Además, personalmente, tengo problemas para leer fuentes pequeñas y suavizadas, así que me gustaría una solución para mi propio uso, incluso para los sitios que no controlo.

En IE8 podría desmarcar "Usar siempre ClearType para HTML" y luego deshabilitar ClearType en el sistema operativo e IE8 mostraría todas las fuentes con alias. Pero en IE9, esta opción falta.

Después de algunas investigaciones sobre el problema, esto es lo que he aprendido: el problema central es que IE se basa en DirectWrite para la representación de texto y no admite ninguna de las opciones de representación más nuevas que dibujarían texto sin suavizado y respetarían el sistema operativo del usuario. amplias opciones por defecto.

Para empeorar las cosas, si deshabilita ClearType en el sistema operativo, en algunos casos, IE volverá a utilizar el suavizado predeterminado de no claro de DirectWrite, que es incluso más difuso que ClearType.


La información aquí resuelve dos problemas: 1. Deshacerse de cleartype y del suavizado de fuentes en IE9 2. Deshacerte de cleartype y del suavizado de fuentes cuando IE10 se instala o se instala automáticamente

Hice un hackeo para desactivar cleartype en IE9: [HKEY_CURRENT_USER / Software / Microsoft / Internet Explorer / Main] "UseClearType" = "no" y usé una pequeña pieza de software gratuito para deshacerme del suavizado de fuentes en IE9: https://softwareninjas.kilnhg.com/Repo/Open-Source/Group/DWrite-dll-Wrapper

Luego IE10 se instaló automáticamente y el tipo borroso estaba de vuelta. Intenté desinstalar IE 10, que no fue a través de la interfaz de agregar / quitar programas, sino a través de la interfaz de actualizaciones instaladas, eliminando la actualización de IE10. Aparentemente, eso me llevó de nuevo a IE9, pero el tipo borroso se mantuvo a pesar del hecho de que "no" seguía siendo la respuesta para cleartype en el registro y los dos archivos .dll aún estaban en mi carpeta de programas de IE.

Entonces, decidí desinstalar IE9 y reinstalarlo. Eso también implicó pasar por la interfaz de actualizaciones instaladas y eliminar la actualización de IE9.

Reinicié y esperaba tener que volver a instalar el programa, pero mi icono de IE todavía estaba allí. Cuando hice clic en él, IE9 se abrió con un tipo agradable y nítido.


Para responder a su pregunta directamente:

La representación de fuentes ClearType se utiliza en todos los modos de documento IE9; El posicionamiento de subpíxeles se usa solo en el modo de estándares por defecto de IE9. Los modos de compatibilidad de IE9 (Quirks, 7 y 8) utilizan métricas de texto de píxeles completos.

Así que intenta cambiar tu doctype para usar el modo de Quirks :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

La otra cosa a considerar es tratar de evitar los tamaños de fuente basados ​​en puntos .

Información importante sobre fuentes, desenfoque y renderización en IE9

Fuentes de MSDN: