다음을 통해 공유


{CustomResource} 마크업 확장

사용자 지정 리소스 조회 구현에서 가져온 리소스에 대한 참조를 평가하여 XAML 특성에 대한 값을 제공합니다. 리소스 조회는 CustomXamlResourceLoader 클래스 구현에 의해 수행됩니다.

XAML 특성 사용

<object property="{CustomResource key}" .../>

XAML 값

용어 Description
key 요청된 리소스의 키입니다. 키를 처음 할당하는 방법은 현재 사용하도록 등록된 CustomXamlResourceLoader 클래스의 구현과 관련이 있습니다.

비고

CustomResource 는 사용자 지정 리소스 리포지토리의 다른 위치에 정의된 값을 가져오는 기술입니다. 이 기술은 비교적 고급이며 대부분의 Windows 런타임 앱 시나리오에서 사용되지 않습니다.

CustomResource가 리소스 사전을 확인하는 방법은 이 항목에서 설명하지 않습니다. 이는 CustomXamlResourceLoader가 구현되는 방식에 따라 크게 달라질 수 있기 때문입니다.

CustomXamlResourceLoader 구현의 GetResource 메서드는 마크업에서 {CustomResource} 사용을 발견할 때마다 Windows 런타임 XAML 파서에 의해 호출됩니다. GetResource에 전달되는 resourceId 인수에서 제공되며 다른 입력 매개 변수는 사용이 적용되는 속성과 같은 컨텍스트에서 가져옵니다.

{CustomResource} 사용은 기본적으로 작동하지 않습니다(GetResource의 기본 구현은 불완전). 유효한 {CustomResource} 참조를 만들려면 다음 각 단계를 수행해야 합니다.

  1. CustomXamlResourceLoader에서 사용자 지정 클래스를 파생시키고 GetResource 메서드를 재정의합니다. 구현에서 기본 메소드를 호출하지 마세요.
  2. 초기화 로직에서 클래스를 참조하도록 CustomXamlResourceLoader.Current를 설정합니다. 확장 사용을 포함하는 페이지 수준 XAML이 {CustomResource} 로드되기 전에 이 작업이 수행되어야 합니다. CustomXamlResourceLoader.Current를 설정할 수 있는 곳 중 하나는 App.xaml 코드 숨김 템플릿에서 생성되는 Application 하위 클래스 생성자입니다.
  3. 이제 앱이 페이지로 로드하는 XAML 또는 XAML 리소스 사전 내에서 {CustomResource} 확장을 활용할 수 있습니다.

CustomResource 는 태그 확장입니다. 태그 확장은 일반적으로 특성 값을 리터럴 값이나 처리기 이름이 아닌 다른 값으로 이스케이프해야 하는 경우에 구현되며, 요구 사항은 특정 형식 또는 속성에 형식 변환기를 배치하는 것보다 전역적입니다. XAML의 모든 태그 확장은 해당 특성 구문에 "{" 및 "}" 문자를 사용합니다. 이 규칙은 XAML 프로세서가 태그 확장에서 특성을 처리해야 한다는 것을 인식하는 규칙입니다.