x:Static 태그 확장

업데이트: 2007년 11월

CLS(공용 언어 사양) 규격에 맞는 방식으로 정의된 모든 정적 값별 코드 엔터티를 참조합니다. 참조되는 속성은 XAML 페이지의 나머지 부분을 로드하기 전에 확인되며 XAML에서 속성 값을 제공하는 데 사용될 수 있습니다.

XAML 특성 사용

<object property="{x:Static prefix:typeName.staticMemberName}" .../>

XAML 개체 요소 사용

<object>
  <object.property>
    <x:Static Member="prefix:typeName.staticMemberName" .../>
  </object.property>
</object>

XAML 값

prefix

선택적 요소. 기본값이 아닌 xmlns 네임스페이스를 매핑하는 접두사입니다. 설명 부분을 참조하십시오.

typeName

필수 요소입니다. 원하는 정적 멤버를 정의하는 형식입니다.

staticMemberName

필수 요소입니다. 원하는 정적 값 멤버(상수, 정적 속성, 필드 또는 열거형 값)의 이름입니다.

설명

참조되는 코드 엔터티는 다음 중 하나여야 합니다.

  • 상수

  • 정적 속성

  • 필드

  • 열거형 값

비정적 속성과 같은 다른 코드 엔터티를 지정하면 컴파일 타임 오류가 발생합니다.

x:Static을 사용하여 기본 xmlns 네임스페이스에 포함되지 않은 정적 필드나 속성을 참조할 수도 있지만 이 경우에는 접두사 매핑이 필요합니다. 모든 XAML 요소의 기본 xmlns 네임스페이스는 특성으로 정의합니다. 일반적으로 기본 네임스페이스는 루트 아래의 모든 요소에 xmlns가 적용되도록 루트 요소에서 정의합니다. 일반적으로 WPF(Windows Presentation Foundation) 프로그래밍에서는 WPF 네임스페이스를 기본 XML 네임스페이스로 사용합니다. 다음 중 하나에 해당하는 경우에는 접두사를 매핑해야 합니다.

  • Microsoft .NET Framework에 포함되었지만 WPF 네임스페이스에 속하지 않는 형식을 참조하는 경우. 이 시나리오는 x:Static을 사용할 때 비교적 일반적인 시나리오입니다. 예를 들어 System CLR 네임스페이스에 대한 접두사 매핑이 포함된 x:Static 참조를 사용하여 Environment 클래스의 정적 속성을 참조할 수 있습니다.

  • 사용자 지정 어셈블리에서 형식을 참조하는 경우

  • WPF 어셈블리에 포함되었지만 WPF 네임스페이스의 일부로 매핑되지 않은 CLR 네임스페이스에 포함된 형식을 참조하는 경우. 매핑은 해당 어셈블리 내의 정의를 통해 수행됩니다. 매핑되지 않은 CLR 네임스페이스는 System.Windows.Threading과 같이 XAML에서 일반적으로 사용하지 않는 CLR 네임스페이스의 WPF 클래스 정의에 주로 사용됩니다.

접두사 및 XML 네임스페이스에 대한 자세한 내용은 XAML 네임스페이스 및 네임스페이스 매핑을 참조하십시오.

속성 값의 형식은 아니지만 해당 형식으로 확인될 수 있는 x:Static 참조를 사용할 수 있습니다. 예를 들어 x:Static 참조를 사용하여 열거형에서 값을 가져오거나, SystemColors에 정의된 여러 가지 색과 브러시 같은 정적 속성에서 값을 가져올 수도 있습니다. 확인된 x:Static 값이 실제로 처리되는 방법은 정적 값이 적용된 속성의 형식 변환기 동작에 따라 달라질 수 있기 때문에 x:Static 참조를 사용하면 참조 형식을 사용하는 속성을 기반으로 하는 속성을 비롯하여 원하는 모든 속성을 XAML 구문에 설정할 수 있습니다.

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

x:Static은 개체 요소 구문에서 사용할 수 있습니다. 이 경우에는 Member 속성의 값을 지정해야 합니다.

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

<object property="{x:Static Member=prefix:typeName.staticMemberName}" .../>

자세한 정보 표시는 설정 가능한 속성이 여러 개이거나 일부 속성이 선택 사항인 확장에 유용한 경우가 많습니다. x:Static에는 설정 가능한 속성이 하나뿐이고 이 속성은 필수적 속성이므로 자세한 정보 표시를 사용하지 않는 것이 일반적입니다.

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

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

참고 항목

개념

스타일 지정 및 템플릿

XAML 개요

태그 확장 및 XAML

참조

x:Type 태그 확장