다음을 통해 공유


CustomXamlResourceLoader 클래스

정의

사용자 지정 리소스 사전을 원본으로 로드할 수 있습니다. GetResource를 재정의하여 XAML 파서가 로드 시 필요한 리소스를 조회하는 데 사용할 수 있는 논리를 제공합니다.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CustomXamlResourceLoader
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class CustomXamlResourceLoader
Public Class CustomXamlResourceLoader
상속
Object IInspectable CustomXamlResourceLoader
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

설명

CustomXamlResourceLoader는 태그 확장 사용 {CustomResource}을 지원합니다. 이 태그 확장은 Windows 런타임 XAML 프레임워크에 고유합니다(WPF(Windows Presentation Foundation) 및 Microsoft Silverlight와 같은 전구체 XAML 기술에는 존재하지 않았습니다.)

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

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

{CustomResource} 태그 확장은 다양한 ResourceDictionary 위치에서 기본 제공 리소스 조회를 수행하는 {StaticResource} 태그 확장과 비슷한 방식으로 XAML에서 사용할 수 있습니다. 차이점은 앱 자체가 사용자 지정 리소스 로더를 제공하여 {CustomResource} 태그 확장 사용에 대한 리소스 조회 논리를 구현한다는 것입니다. 사용자 지정 리소스 로더를 구현하려면 애플리케이션이 CustomXamlResourceLoader에서 파생되는 클래스를 제공하고 GetResource 메서드를 재정의해야 합니다. 앱은 CustomXamlResourceLoader.Current 정적 속성을 사용자 지정 리소스 로더 클래스의 instance 설정하여 사용자 지정 리소스 로더를 등록해야 합니다. 이 등록은 {CustomResource} 태그 확장을 사용하는 XAML을 구문 분석하기 전에 XAML UI 스레드에서 수행해야 합니다. 애플리케이션에서 여러 UI 스레드를 사용하는 경우 각각에 대해 별도의 등록을 수행해야 합니다.

CustomXamlResourceLoader가 리소스를 저장하는 방법은 ResourceDictionary 와 전혀 관련이 없을 수 있습니다. 일반적으로 필요한 재정의 외에도 CustomXamlResourceLoader 클래스는 내부 또는 공용 메서드를 제공하여 기본 컬렉션의 리소스 항목을 저장, 키 지정 및 사용할 수 있도록 합니다.

생성자

CustomXamlResourceLoader()

CustomXamlResourceLoader 클래스의 새 instance 초기화합니다.

속성

Current

활성 CustomXamlResourceLoader instance 반환합니다.

메서드

GetResource(String, String, String, String)

파생 클래스에서 재정의되는 경우 이 CustomXamlResourceLoader에 대한 리소스 조회 논리를 지정합니다. 리소스 ID와 예상 결과에 대한 일부 형식 정보를 지정하면 요청된 리소스를 반환합니다.

적용 대상

추가 정보