다음을 통해 공유


고대비 테마 지원

이 항목에서는 Windows 8의 고대비 테마 지원을 이전 버전의 Windows 지원과 비교하고 Windows 8 애플리케이션에서 고대비 테마를 지원하는 방법을 설명합니다.

여기에는 다음 단원이 포함됩니다.

고대비 테마 지원 개요

Windows 7 및 이전 버전은 레거시 Windows 클래식 모델과 현재 시각적 스타일을 포함하여 두 가지 테마 모델을 지원합니다. Windows 클래식 모델은 주로 다양한 고대비 테마를 지원하기 위해 Windows 7을 통해 유지되었습니다. 그러나 Windows 클래식 모델에는 여러 가지 단점이 있습니다.

  • Windows Aero와 같은 시각적 스타일을 사용하는 테마는 지원하지 않습니다. 고대비 테마 사용자는 Windows 클래식 UI를 사용해야 합니다.
  • 썸네일 미리 보기 및 Windows 7에 도입된 전체 화면 돋보기와 같이 DWM(바탕 화면 창 관리자) 실행에 의존하는 UI 기능에 대한 지원이 없습니다.
  • 개발자는 서로 다른 두 테마 모델을 지원하기 위해 두 개의 개별 코드 경로를 유지해야 합니다.

Windows 8 이상에서 테마 모델에 대한 다음 변경 내용은 이전의 단점을 해결합니다.

  • Windows 클래식 테마 모델은 더 이상 지원되지 않으므로 개발자는 Windows 8만 대상으로 하는 애플리케이션에 대해 하나의 코드 경로만 유지할 수 있습니다.
  • 시각적 스타일과 DWM은 Windows 8에서 켜져 있기 때문에 고대비 사용자가 썸네일 미리 보기 및 전체 화면 돋보기와 같은 기능에 액세스할 수 있습니다.
  • 시각적 스타일은 다양한 UI 요소의 색 설정을 지원하므로 고대비 사용자가 개별 요구 사항과 기본 설정을 수용하도록 UI를 사용자 지정할 수 있습니다.
  • Windows 8에는 Windows 클래식 테마 모델을 기반으로 고대비 테마를 사용하도록 설계된 기존 애플리케이션에 대한 호환성 지원이 포함되어 있습니다.

Windows 8 이상에서 고대비 테마 지원

Windows 8에서는 시각적 스타일이 고대비 모드로 설정되어 있기 때문에 다음 지침을 준수하는 한 고대비 테마를 지원하는 것이 간단합니다.

  • 글꼴 및 컨트롤 크기입니다. 장애가 있는 사용자가 UI에 액세스할 수 있도록 하려면 현재 테마 설정에 따라 글꼴 크기를 설정합니다. 컨트롤의 크기를 최소한 기본 크기로 설정합니다.
  • 색. 하드 코딩된 색을 사용하지 마세요. 대신 현재 테마를 기반으로 하는 시스템 색을 사용합니다. 사용자 지정 색을 사용하면 고대비 테마의 색을 방해하고 재정의할 수 있습니다.
  • 애플리케이션 매니페스트. 새로운 고대비 테마와 함께 작동하도록 설계된 애플리케이션에는 Windows 8 호환성 GUID가 포함된 매니페스트에 정의된 애플리케이션 호환성 섹션이 있어야 합니다. 그렇지 않으면 Windows는 애플리케이션이 이전 버전의 Windows용으로 설계되었다고 가정하고 Windows 클래식 테마 모델을 시뮬레이트하여 애플리케이션 UI를 렌더링합니다.

애플리케이션 매니페스트에 호환성 섹션 추가

애플리케이션 매니페스트는 애플리케이션의 요구 사항을 설명하는 XML 파일입니다. 매니페스트의 호환성 섹션은 애플리케이션에서 지원하는 Windows 버전을 식별합니다. 다음 GUID는 다양한 버전의 Windows를 식별하기 위해 호환성 섹션에서 사용됩니다.

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

 

호환성 섹션은 여러 버전의 Windows를 지정할 수 있지만 각 버전은 고유한 <supportedOS/> 태그 내에 포함되어야 합니다. 다음 예에서는 호환성 섹션에서 Windows 7 및 Windows 8을 지정하는 애플리케이션 매니페스트를 보여 줍니다.

<?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>

애플리케이션에 호환성 매니페스트가 없으면 Windows Vista 애플리케이션으로 간주되며 고대비 테마가 활성화되면 클라이언트 영역에서 테마 컨트롤을 사용하지 않습니다. 또한 일부 시각적 스타일 함수의 동작이 영향을 받습니다. 예를 들어, IsThemeActive, IsCompositionActiveIsAppThemed는 FALSE를 반환하고 OpenThemeDataOpenThemeDataEx는 NULL 핸들을 반환합니다. 이는 호환성 지원을 위한 것이므로 Windows 8 이전에 빌드된 애플리케이션이 시각적 스타일을 사용할 수 없는 이전 버전 Windows의 고대비 모드와 동일한 모양으로 UI를 계속 렌더링할 수 있습니다.

Windows 8에서 애플리케이션은 여전히 바탕 화면 구성의 이점을 받습니다. 이는 예를 들어, 전체 화면 돋보기와 같은 사용성 애플리케이션이 개별 애플리케이션의 매니페스트 상태에 의존하지 않는다는 것을 의미합니다. 사용성 애플리케이션은 해당 매니페스트에서 Windows 8 호환으로 자신을 식별하지 않는 애플리케이션과 고대비 모드에서 계속 작동합니다.

다음 이미지는 Windows 7에서 고대비로 표시된 간단한 대화 상자를 보여 줍니다.

hig contrast dialog box

이 이미지는 Windows 8에서 고대비로 동일한 대화 상자를 보여 주지만 애플리케이션 매니페스트에 Windows 7 호환성이 지정되어 있습니다.

w8 high contrast dialog box

이 이미지는 애플리케이션 매니페스트에 지정된 Windows 8과 함께 Windows 8에서 고대비로 동일한 대화 상자를 보여 줍니다.

w8 high contrast dialog with manifest

이전 버전의 Windows에서 고대비 검색

이전 버전의 Windows에서 실행되는 애플리케이션은 새로운 고대비 테마에 액세스할 수 없습니다. 애플리케이션을 이전 버전에서 실행해야 하는 경우 Windows 클래식 테마 모델의 고대비에서 UI 렌더링 지원을 포함해야 합니다. 애플리케이션은 SPI_GETHIGHCONTRAST 플래그와 함께 SystemParametersInfo 함수를 호출하여 고대비 테마가 활성 상태인지 확인할 수 있습니다.

시각적 개체 스타일 사용

시각적 스타일