x:Type 태그 확장
지정된 XAML 형식의 기본 형식인 CLR Type 개체를 제공합니다.
XAML 특성 사용
<object property="{x:Type prefix:typeNameValue}" .../>
XAML 개체 요소 사용
<x:Type TypeName="prefix:typeNameValue"/>
XAML 값
값 | 묘사 |
---|---|
prefix |
선택적. 기본이 아닌 XAML 네임스페이스를 매핑하는 접두사입니다. 접두사를 지정할 필요가 없는 경우가 많습니다. 비고를 참조하세요. |
typeNameValue |
필수. 현재 기본 XAML 네임스페이스로 확인할 수 있는 형식 이름입니다. 또는 prefix 제공된 경우 지정된 매핑된 접두사입니다. |
발언
x:Type
태그 확장은 C#의 typeof()
연산자 또는 Microsoft Visual Basic의 GetType
연산자에 유사한 함수를 사용합니다.
x:Type
태그 확장은 형식을 Type속성에 대한 문자열 변환 동작을 제공합니다. 입력이 XAML 형식입니다. 입력 XAML 형식과 출력 CLR Type 간의 관계는 XAML 스키마 컨텍스트 및 컨텍스트에서 제공하는 IXamlTypeResolver 서비스를 기반으로 필요한 XamlType 조회한 후 출력 Type 입력 XamlTypeUnderlyingType 것입니다.
.NET XAML Services에서 이 태그 확장에 대한 처리는 TypeExtension 클래스에 의해 정의됩니다.
특정 프레임워크 구현에서 Type 값으로 사용하는 일부 속성은 형식의 이름(Name
형식의 문자열 값)을 직접 수락할 수 있습니다. 그러나 이 동작을 구현하는 것은 복잡한 시나리오입니다. 예를 들어 다음 "WPF 사용량 현황 정보" 섹션을 참조하세요.
특성 구문은 이 태그 확장에 사용되는 가장 일반적인 구문입니다.
x:Type
식별자 문자열 이후에 제공된 문자열 토큰은 기본 TypeExtension 확장 클래스의 TypeName 값으로 할당됩니다. CLR 형식을 기반으로 하는 .NET XAML Services의 기본 XAML 스키마 컨텍스트에서 이 특성의 값은 원하는 형식의 Name 또는 기본이 아닌 XAML 네임스페이스 매핑에 대한 접두사 앞에 Name 포함됩니다.
x:Type
태그 확장은 개체 요소 구문에서 사용할 수 있습니다. 이 경우 확장을 올바르게 초기화하려면 TypeName 속성 값을 지정해야 합니다.
x:Type
태그 확장을 자세한 특성으로 사용할 수도 있습니다. 그러나 이 사용은 일반적인 것은 아닙니다. <object property="{x:Type TypeName=typeNameValue}" .../>
WPF 사용 현황 정보
기본 XAML 네임스페이스 및 형식 매핑
WPF 프로그래밍의 기본 XAML 네임스페이스에는 일반적인 XAML 시나리오에 필요한 대부분의 XAML 형식이 포함되어 있습니다. 따라서 XAML 형식 값을 참조할 때 접두사를 사용하지 않는 경우가 많습니다. 사용자 지정 어셈블리에서 형식을 참조하거나 WPF 어셈블리에 있지만 기본 XAML 네임스페이스에 매핑되지 않은 CLR 네임스페이스에서 온 형식에 대해 접두사를 매핑해야 할 수 있습니다. 접두사, XAML 네임스페이스 및 매핑 CLR 네임스페이스에 대한 자세한 내용은 XAML 네임스페이스 및 WPF XAML대한 네임스페이스 매핑을 참조하세요.
Typename-as-String을 지원하는 형식 속성
WPF는 x:Type
태그 확장 사용 없이도 Type 형식의 일부 속성 값을 지정할 수 있는 기술을 지원합니다. 대신 형식 이름을 지정하는 문자열로 값을 지정할 수 있습니다. 이 예제는 ControlTemplate.TargetType 및 Style.TargetType. 이 동작에 대한 지원은 형식 변환기 또는 태그 확장을 통해 제공되지 않습니다. 대신 FrameworkElementFactory통해 구현되는 지연 동작입니다.
Silverlight는 유사한 규칙을 지원합니다. 실제로 Silverlight는 현재 XAML 언어 지원에서 {x:Type}
지원하지 않으며 WPF-Silverlight XAML 마이그레이션을 지원하기 위한 몇 가지 상황 외에는 {x:Type}
사용을 허용하지 않습니다. 따라서 typename-as-string 동작은 Type 값인 모든 Silverlight 네이티브 속성 평가에 기본 제공됩니다.
XAML 2009
XAML 2009는 제네릭 형식에 대한 추가 지원을 제공하고 이 지원을 제공하기 위해 x:TypeArguments
및 x:Type
기능 동작을 수정합니다.
제네릭 개체 인스턴스화에 대한
x:TypeArguments
및 연결된 개체 요소는 루트가 아닌 요소에 있을 수 있습니다. 자세한 내용은 x:TypeArguments 지시문"XAML 2009" 섹션을 참조하세요.XAML 2009는 태그에서 제네릭 형식의 제약 조건을 지정하는 구문을 지원합니다.
x:TypeArguments
,x:Type
또는 두 기능을 함께 사용하여 사용할 수 있습니다.또한 로드에 대해 XAML 2009를 처리할 때 WPF XAML 구현은 형식 Type사용하는 특정 프레임워크 속성에 대한 암시적 형식 변환 동작에 이 기능을 추가합니다.
WPF에서는 XAML 2009 기능을 사용할 수 있지만 느슨한 XAML(태그 컴파일되지 않은 XAML)에만 사용할 수 있습니다. WPF용 태그 컴파일 XAML 및 XAML의 BAML 형식은 현재 XAML 2009 키워드 및 기능을 지원하지 않습니다.
참고 항목
.NET Desktop feedback