다음을 통해 공유


x:Subclass 지시문

x:Class 제공될 때 XAML 태그 컴파일 동작을 수정합니다. x:Class기반으로 하는 부분 클래스를 만드는 대신 제공된 x:Class 중간 클래스로 만들어지고 제공된 파생 클래스는 x:Class기반으로 합니다.

XAML 특성 사용

<object x:Class="namespace.classname" x:Subclass="subclassNamespace.subclassName">
   ...
</object>

XAML 값

묘사
namespace 선택적. classname포함하는 CLR 네임스페이스를 지정합니다. namespace 지정한 경우 점(.)은 namespace 구분하고 classname.
classname 필수. 로드된 XAML과 해당 XAML에 대한 코드 숨김을 연결하는 partial 클래스의 CLR 이름을 지정합니다. 비고를 참조하세요.
subclassNamespace 선택적. 각 네임스페이스가 다른 네임스페이스를 확인할 수 있는 경우 namespace 다를 수 있습니다. subclassName포함하는 CLR 네임스페이스를 지정합니다. subclassName 지정한 경우 점(.)은 subclassNamespace 구분하고 subclassName.
subclassName 필수. 하위 클래스의 CLR 이름을 지정합니다.

종속성

x:Class 지시문 동일한 개체에도 제공되어야 하며 해당 개체는 XAML 프로덕션의 루트 요소여야 합니다.

발언

x:Subclass 사용은 주로 부분 클래스 선언을 지원하지 않는 언어를 위한 것입니다.

x:Subclass 사용되는 클래스는 중첩 클래스일 수 없으며 x:Subclass "종속성" 섹션에 설명된 대로 루트 개체를 참조해야 합니다.

그렇지 않은 경우 x:Subclass 개념적 의미는 .NET XAML 서비스 구현에 의해 정의되지 않습니다. .NET XAML 서비스 동작이 XAML 태그 및 백업 코드가 연결된 전체 프로그래밍 모델을 지정하지 않기 때문입니다. x:Classx:Subclass 관련된 추가 개념의 구현은 프로그래밍 모델 또는 애플리케이션 모델을 사용하여 XAML 태그, 컴파일된 태그 및 CLR 기반 코드 숨김을 연결하는 방법을 정의하는 특정 프레임워크에서 수행됩니다. 각 프레임워크에는 일부 동작 또는 빌드 환경에 포함되어야 하는 특정 구성 요소를 사용하도록 설정하는 자체 빌드 작업이 있을 수 있습니다. 프레임워크 내에서 빌드 작업은 코드 숨김에 사용되는 특정 CLR 언어에 따라 달라질 수도 있습니다.

WPF 사용 현황 정보

x:Subclass 이미 x:Class있는 애플리케이션 정의의 페이지 루트 또는 Application 루트에 있을 수 있습니다. 페이지 또는 애플리케이션 루트 이외의 요소에 x:Subclass 선언하거나 x:Class 없는 위치에 지정하면 컴파일 시간 오류가 발생합니다.

x:Subclass 시나리오에 올바르게 작동하는 파생 클래스를 만드는 것은 매우 복잡합니다. 중간 파일(.xaml 파일 이름을 통합하는 이름으로 태그 컴파일을 통해 프로젝트의 obj 폴더에서 생성된 .g 파일)을 검사해야 할 수 있습니다. 이러한 중간 파일은 컴파일된 애플리케이션의 조인된 부분 클래스에서 특정 프로그래밍 구문의 원본을 결정하는 데 도움이 될 수 있습니다.

컴파일하는 동안 중간 클래스에서 만든 처리기의 스텁을 재정의하려면 파생 클래스의 이벤트 처리기가 internal override(Microsoft Visual Basic에서는Friend Overrides)여야 합니다. 그렇지 않으면 파생 클래스 구현은 중간 클래스 구현을 숨기고(그림자) 중간 클래스 처리기는 호출되지 않습니다.

x:Classx:Subclass모두 정의하는 경우 x:Class참조되는 클래스에 대한 구현을 제공할 필요가 없습니다. 컴파일러가 중간 파일에서 만드는 클래스에 대한 몇 가지 지침을 포함하도록 x:Class 특성을 통해서만 이름을 지정하면 됩니다(이 경우 컴파일러는 기본 이름을 선택하지 않음). x:Class 클래스에 구현을 제공할 수 있습니다. 그러나 x:Classx:Subclass모두 사용하는 일반적인 시나리오는 아닙니다.

참고 항목