다음을 통해 공유


x:Code 내장 XAML 형식

XAML 프로덕션 내에 코드를 배치할 수 있습니다. 이러한 코드는 XAML을 컴파일하는 XAML 프로세서 구현으로 컴파일하거나 나중에 사용하기 위해(예: 런타임 해석) XAML 프로덕션에 남을 수 있습니다.

XAML 개체 요소 사용

<x:Code>
   // code instructions, usually enclosed by CDATA...
</x:Code>

설명

그래도 x:Code XAML 지시문 요소 내 코드는 제공되는 일반 XML 네임스페이스와 XAML 네임스페이스 내에서 해석됩니다. 따라서 일반적으로 x:Code에 사용되는 코드를 CDATA 세그먼트 안으로 묶을 필요가 있습니다.

x:Code는 XAML 프로덕션에 가능한 모든 배포 메커니즘에 허용되지 않습니다. 특정 프레임워크(예: WPF)에서는 코드를 컴파일해야 합니다. 그 외 프레임워크에서는 일반적으로 x:Code 사용이 허용되지 않을 수 있습니다.

관리형 x:Code 콘텐츠를 허용하는 프레임워크에서는 x:Code 콘텐츠에 사용할 언어 컴파일러는 애플리케이션 컴파일에 사용되는 포함 프로젝트의 설정 및 대상으로 결정합니다.

WPF 사용 정보

WPF의 x:Code 안에서 선언된 코드에는 다음과 같은 몇 가지 주목할 만한 제한 사항이 있습니다.

  • x:Code 지시문 요소는 XAML 프로덕션의 루트 요소의 직속 자식 요소여야 합니다.

  • x:Class 지시문은 부모 루트 요소에 제공되어야 합니다.

  • x:Code 안에 위치하는 코드는 해당 XAML 페이지에 대해 생성 중인 부분 클래스의 범위에 드는 컴파일에 의해 처리됩니다. 따라서 정의하는 모든 코드는 해당 부분 클래스의 멤버 또는 변수여야 합니다.

  • 부분 클래스 내에 클래스를 중첩하는 방법으로만 추가 클래스를 정의할 수 있습니다(중첩은 허용되지만 중첩 클래스는 XAML에서 참조할 수 없으므로 일반적이지 않음). 기존 부분 클래스에 사용되는 네임스페이스 이외의 CLR 네임스페이스를 정의하거나 추가할 수 없습니다.

  • 부분 클래스 CLR 네임스페이스 외부의 코드 엔터티에 대한 참조는 완전히 정규화되어야 합니다. 선언되는 멤버가 부분 클래스 재정의 가능 멤버에 대한 재정의인 경우, 언어별 재정의 키워드로 지정해야 합니다. x:Code 범위에서 선언된 멤버가 XAML에서 만든 부분 클래스의 멤버와 충돌하는 경우 컴파일러에서 충돌을 보고하는 방식으로 XAML 파일을 컴파일하거나 로드할 수 없습니다.

참고 항목