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 파일을 컴파일하거나 로드할 수 없습니다.
참고 항목
.NET Desktop feedback