Compatibilidad con temas de contraste alto

En este tema se compara la compatibilidad con temas de contraste alto en Windows 8 con la de versiones anteriores de Windows y se explica cómo admitir temas de contraste alto en una aplicación de Windows 8.

Incluye las secciones siguientes.

Información general sobre la compatibilidad con temas de contraste alto

Windows 7 y versiones anteriores admiten dos modelos de creación de temáticas, incluido el modelo clásico de Windows heredado y los estilos visuales actuales. El modelo clásico de Windows se ha conservado a través de Windows 7 principalmente para admitir los distintos temas de contraste alto. Sin embargo, el modelo clásico de Windows tiene varias desventajas:

  • No se admiten temas que usen estilos visuales, como Windows Aero. Los usuarios de temas de contraste alto deben usar la interfaz de usuario clásica de Windows.
  • No se admiten las características de interfaz de usuario que dependen del Administrador de ventanas de escritorio (DWM) para ejecutarse, como las vistas previas en miniatura y la lupa de pantalla completa que se introdujo en Windows 7.
  • Los desarrolladores deben mantener dos rutas de acceso de código independientes para admitir los dos modelos de creación de temáticas diferentes.

En Windows 8 y versiones posteriores, los siguientes cambios en el modelo de creación de temas abordan los inconvenientes anteriores:

  • Ya no se admite el modelo de creación de temáticas clásica de Windows, lo que permite a los desarrolladores mantener solo una ruta de acceso de código para las aplicaciones que tienen como destino solo Windows 8.
  • Dado que los estilos visuales y DWM están activados en Windows 8, los usuarios de contraste alto tienen acceso a características como vistas previas en miniatura y la lupa de pantalla completa.
  • Los estilos visuales admiten la configuración de los colores de varios elementos de la interfaz de usuario, lo que permite a los usuarios de contraste alto personalizar la interfaz de usuario para adaptarse a las necesidades y preferencias individuales.
  • Windows 8 incluye compatibilidad con aplicaciones existentes diseñadas para usar temas de contraste alto en función del modelo de temas clásico de Windows.

Compatibilidad con temas de contraste alto en Windows 8 y versiones posteriores

En Windows 8, dado que los estilos visuales están en modo de contraste alto, admitir temas de contraste alto es sencillo siempre y cuando haya seguido las instrucciones siguientes.

  • Tamaños de fuente y control. Para asegurarse de que la interfaz de usuario sea accesible para los usuarios con discapacidades, establezca los tamaños de fuente según la configuración actual del tema. Establezca el tamaño de los controles para que sean al menos el tamaño predeterminado.
  • Colores. Evite usar colores codificados de forma rígida. En su lugar, use los colores del sistema porque se basan en el tema actual. El uso de colores personalizados puede interferir e invalidar los colores en los temas de contraste alto.
  • Manifiesto de aplicación. Las aplicaciones diseñadas para trabajar con los nuevos temas de contraste alto deben tener una sección de compatibilidad de aplicaciones definida en su manifiesto que contiene los GUID de compatibilidad de Windows 8. De lo contrario, Windows supone que la aplicación está diseñada para una versión anterior de Windows y representa la interfaz de usuario de la aplicación simulando el modelo de creación de tema clásico de Windows.

Adición de una sección de compatibilidad al manifiesto de aplicación

Un manifiesto de aplicación es un archivo XML que describe los requisitos de una aplicación. La sección de compatibilidad del manifiesto identifica las versiones de Windows compatibles con la aplicación. Los siguientes GUID se usan en la sección de compatibilidad para identificar las distintas versiones de Windows.

Versión GUID
Windows Vista {e2011457-1546-43c5-a5fe-008deee3d3f0}
Windows 7 {35138b9a-5d96-4fbd-8e2d-a2440225f93a}
Windows 8 {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}

 

La sección de compatibilidad puede especificar varias versiones de Windows, pero cada una debe estar incluida en su propia <supportedOS/> etiqueta. En el ejemplo siguiente se muestra un manifiesto de aplicación que especifica Windows 7 y Windows 8 en la sección de compatibilidad:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!--The ID below indicates application support for Windows 8 -->
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>

            <!--The ID below indicates application support for Windows 7 -->
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
        </application>
    </compatibility>
</assembly>

Si una aplicación no tiene un manifiesto de compatibilidad, se supone que es una aplicación de Windows Vista y no usa controles con temas en el área cliente cuando un tema de contraste alto está activo. Además, el comportamiento de algunas funciones de estilos visuales se ve afectada. Por ejemplo, IsThemeActive, IsCompositionActive e IsAppThemed devuelven FALSE, mientras que OpenThemeData y OpenThemeDataEx devuelven un identificador NULL. Esto es compatible con la compatibilidad, por lo que las aplicaciones compiladas antes de Windows 8 todavía pueden representar su interfaz de usuario en el mismo aspecto que el modo de contraste alto de las versiones anteriores de Windows en las que los estilos visuales no están disponibles.

En Windows 8, la aplicación sigue recibiendo las ventajas de la composición del escritorio. Esto significa, por ejemplo, que las aplicaciones de facilidad de uso, como la lupa de pantalla completa, no dependen del estado del manifiesto de una aplicación individual. La aplicación de facilidad de uso sigue funcionando en modo de contraste alto con una aplicación que no se identifica como Windows 8 compatible en su manifiesto.

Las imágenes siguientes muestran un cuadro de diálogo sencillo en contraste alto en Windows 7.

cuadro de diálogo contraste hig

Esta imagen muestra el mismo cuadro de diálogo en contraste alto en Windows 8, pero con la compatibilidad de Windows 7 especificada en el manifiesto de aplicación:

Cuadro de diálogo de contraste alto w8

Esta imagen muestra el mismo cuadro de diálogo en contraste alto en Windows 8, con Windows 8 especificados en el manifiesto de aplicación:

Cuadro de diálogo de contraste alto w8 con manifiesto

Detección de contraste alto en versiones anteriores de Windows

Las aplicaciones que se ejecutan en versiones anteriores de Windows no tienen acceso a los nuevos temas de contraste alto. Si la aplicación debe ejecutarse en versiones anteriores de , debe incluir compatibilidad con la representación de la interfaz de usuario en contraste alto en el modelo de creación de temas clásico de Windows. La aplicación puede determinar si un tema de contraste alto está activo llamando a la función SystemParametersInfo con la marca SPI_GETHIGHCONTRAST .

Habilitar los estilos visuales

Estilos visuales