다음을 통해 공유


ThemeDictionary 태그 확장

타사 컨트롤을 통합하는 사용자 지정 컨트롤 작성자 또는 애플리케이션이 컨트롤 스타일 지정에 사용할 테마별 리소스 사전을 로드하는 방법을 제공합니다.

XAML 특성 사용

<object property="{ThemeDictionary assemblyUri}" ... />  

XAML 개체 요소 사용

<object>  
  <object.property>  
    <ThemeDictionary AssemblyName="assemblyUri"/>  
  <object.property>  
<object>  

XAML 값

설명
assemblyUri 테마 정보를 포함하는 어셈블리의 URI(Uniform Resource Identifier)입니다. 일반적으로 이는 더 큰 패키지에서 어셈블리를 참조하는 Pack URI입니다. 어셈블리 리소스 및 Pack URI는 배포 문제를 완화합니다. 자세한 내용은 WPF의 Pack URI를 참조하세요.

설명

이 확장은 특정 속성 값인 ResourceDictionary.Source에 대한 값 하나만 채우도록 설계되었습니다.

이 확장을 사용하여 Windows Aero 테마가 사용자 시스템에 적용될 경우에만 사용할 몇몇 스타일이 포함되고 Luna 테마가 활성화된 경우에는 다른 스타일이 포함되는 단일 리소스 전용 어셈블리를 지정할 수 있습니다. 이 확장을 사용하면 컨트롤별 리소스 사전의 콘텐츠가 자동으로 유효성이 검사되고 필요한 경우 또 다른 테마에 관련되도록 다시 로드됩니다.

assemblyUri 문자열(AssemblyName 속성 값)은 특정 테마에 적용된 사전을 식별하는 명명 규칙의 기반을 형성합니다. ThemeDictionary에 대한 ProvideValue 논리는 미리 컴파일된 리소스 어셈블리 내에 포함된 특정 테마 사전 변형을 가리키는 URI(Uniform Resource Identifier)를 생성하여 규칙을 완성합니다. 여기서는 이 규칙에 대한 설명이나 개념상 일반 컨트롤 스타일 지정 및 페이지/애플리케이션 수준 스타일 지정과 테마의 상호 작용을 다루지 않습니다. ThemeDictionary 사용에 대한 기본 시나리오는 애플리케이션 수준에서 선언된 ResourceDictionarySource 속성을 지정하는 것입니다. 직접 URI가 아닌 ThemeDictionary 확장을 통해 어셈블리에 URI를 제공하는 경우 확장 논리는 시스템 테마가 변경될 때마다 적용되는 무효화 논리를 제공합니다.

특성 구문은 이러한 태그 확장에 가장 많이 사용되는 구문입니다. ThemeDictionary 식별자 문자열 다음에 나오는 문자열 토큰은 기본 AssemblyName 확장명 클래스의 ThemeDictionaryExtension 값으로 할당됩니다.

ThemeDictionary는 개체 요소 구문에서 사용될 수도 있습니다. 이 경우 AssemblyName 속성의 값을 지정해야 합니다.

ThemeDictionary 속성을 다음과 같이 속성=값 쌍으로 지정하는 자세한 특성 사용 구문에도 Member을 사용할 수 있습니다.

<object property="{ThemeDictionary AssemblyName=assemblyUri}" ... />  

자세한 정보 표시는 대개 설정 가능한 속성이 둘 이상이거나 일부 속성이 선택 사항인 확장의 경우에 유용합니다. ThemeDictionary에는 설정 가능한 속성이 하나뿐이고 이 속성은 필수적 속성이므로 자세한 정보 표시를 사용하지 않는 것이 일반적입니다.

WPF XAML 프로세서 구현에서 이 태그 확장에 대한 처리는 ThemeDictionaryExtension 클래스를 통해 정의됩니다.

ThemeDictionary은 태그 확장입니다. 태그 확장은 특성 값을 리터럴 값 또는 처리기 이름이 아닌 다른 값이 되도록 이스케이프해야 하는 요구 사항이 있는 경우 일반적으로 구현되며 이러한 요구 사항은 특정 형식 또는 속성에 형식 변환기를 배치하는 것보다 더 포괄적입니다. XAML의 모든 태그 확장은 특성 구문에 { 및 } 문자를 사용하며, 여기서 특성 구문은 XAML 프로세서가 태그 확장이 특성을 처리해야 함을 인식하는 데 사용하는 규칙입니다. 자세한 내용은 태그 확장 및 WPF XAML을 참조하세요.

참고 항목