Application.LoadComponent 메서드

정의

오버로드

LoadComponent(Object, Uri)

지정된 상대 위치에 있는 XAML 파일을 로드하고 XAML 파일의 루트 요소로 지정된 개체의 instance 변환합니다.

LoadComponent(Object, Uri, ComponentResourceLocation)

지정된 상대 위치에 있는 XAML 파일을 로드하고 XAML 파일의 루트 요소로 지정된 개체의 instance 변환합니다.

LoadComponent(Object, Uri)

지정된 상대 위치에 있는 XAML 파일을 로드하고 XAML 파일의 루트 요소로 지정된 개체의 instance 변환합니다.

public:
 static void LoadComponent(Platform::Object ^ component, Uri ^ resourceLocator);
/// [Windows.Foundation.Metadata.Overload("LoadComponent")]
 static void LoadComponent(IInspectable const& component, Uri const& resourceLocator);
[Windows.Foundation.Metadata.Overload("LoadComponent")]
public static void LoadComponent(object component, System.Uri resourceLocator);
function loadComponent(component, resourceLocator)
Public Shared Sub LoadComponent (component As Object, resourceLocator As Uri)

매개 변수

component
Object

Platform::Object

IInspectable

로드할 XAML 콘텐츠의 루트 요소와 동일한 형식의 개체입니다.

resourceLocator
Uri Uri

로드할 리소스에 대한 URI(Uniform Resource Identifier) 경로를 설명하는 개체입니다.

특성

설명

LoadComponent는 주로 인프라용으로 존재합니다. XAML 페이지의 부분 클래스와 해당 코드 숨김을 통합하는 생성된 InitializeComponent 논리의 일부로 LoadComponent를 볼 수 있습니다.

LoadComponent는 앱이 잘못된 XAML을 구문 분석하려고 하기 때문에 궁극적으로 예외에 대한 호출 스택에서 인용되는 경우가 있습니다. 이 경우 앱 코드가 LoadComponent 사용 방법을 변경하는 데 수행할 수 있는 작업은 없으며 문제를 해결하는 방법은 XML 편집기에서 XAML 원본을 검사 수정하는 것입니다. 스택 추적 메시지에서 도움이 될 수 있는 것은 로드되지 않는 XAML 파일을 확인하는 것입니다. 병합된 리소스 또는 다른 여러 XAML 원본이 결합되는 시나리오에서는 구문 분석에 실패하는 명백한 페이지 수준 XAML이 아닙니다.

XAML 콘텐츠를 로드하고 개체 트리를 생성하는 대부분의 앱 시나리오에서는 XamlReader.Load 를 대신 사용해야 합니다.

Windows 8.1 리소스 로드 최적화

Windows 8.1 시작하여 앱 모델 및 Windows 런타임 XAML 파서에서 사용하도록 설정된 리소스 로드 최적화가 있습니다. LoadComponent는 MergedDictionaries에 대한 리소스 사전을 포함하여 XAML 파일에서 제공되는 모든 리소스 사전을 실제로 로드하기 위해 내부적으로 호출되기 때문에 이 시나리오에 포함됩니다. Windows 8의 경우 XAML 파서는 app.xaml에서 리소스를 로드하고 각 리소스를 시작의 일부로 개체로 만들었습니다. 거기에 큰 사전이 있다면 그것은 매우 효율적이지 않았습니다. 또한 이러한 리소스에는 세 가지 테마 모두에 필요한 항목이 포함되었으며, 세 가지 테마 중 두 가지는 활성화되지 않습니다. Windows 8.1 시작해서 XAML 파서는 특별히 요청된 경우에만 리소스를 만듭니다. 요청은 각각 로드될 때 다른 리소스 또는 앱 또는 페이지 XAML에서 올 수 있습니다. 이 파서 동작은 시작 시 앱 수준 사전을 읽는 데 걸리는 시간을 최소화하고 대부분의 경우 첫 번째 앱 페이지가 더 빠르게 로드되도록 합니다. 다른 현재 비활성 테마에 필요한 리소스는 해당 테마가 사용자가 활성 테마가 되도록 선택한 경우에만 로드됩니다. 이때 요청에 {ThemeResource} 태그 확장 이 사용된 리소스는 새로 활성화된 테마에 따라 다시 계산됩니다.

Windows 8 동작

Windows 8에는 위에서 설명한 최적화가 없습니다. 에 대한 Application.ResourcesResourceDictionary는 시작 화면 이외의 페이지가 앱의 창에 로드되기 전에 구문 분석을 완료해야 했습니다. 이 때문에 Windows 8.1 대한 앱의 대상을 다시 지정할 때 타이밍에 몇 가지 차이점이 표시될 수 있습니다. 앱이 더 빠르게 로드되어야 하지만, 대상 변경의 일부로 앱 코드에 적용한 다른 변경 내용과 비교해도 이러한 개선 사항을 격리할 수 없습니다. 최적화된 리소스 로드로 인해 타이밍 변경의 증거가 표시될 수 있는 위치 중 일부는 Application 개체, 변환기 또는 기타 사용자 지정 클래스와 같은 개체에 대해 파서에서 생성자를 호출하는 경우를 포함합니다. Windows 8용으로 컴파일되었지만 Windows 8.1에서 실행하는 앱은 Windows 8 동작을 계속 사용합니다.

성능 및 XAML 리소스 팩터링에 대한 자세한 내용은 XAML 태그 최적화를 참조하세요.

추가 정보

적용 대상

LoadComponent(Object, Uri, ComponentResourceLocation)

지정된 상대 위치에 있는 XAML 파일을 로드하고 XAML 파일의 루트 요소로 지정된 개체의 instance 변환합니다.

public:
 static void LoadComponent(Platform::Object ^ component, Uri ^ resourceLocator, ComponentResourceLocation componentResourceLocation);
/// [Windows.Foundation.Metadata.Overload("LoadComponentWithResourceLocation")]
 static void LoadComponent(IInspectable const& component, Uri const& resourceLocator, ComponentResourceLocation const& componentResourceLocation);
[Windows.Foundation.Metadata.Overload("LoadComponentWithResourceLocation")]
public static void LoadComponent(object component, System.Uri resourceLocator, ComponentResourceLocation componentResourceLocation);
function loadComponent(component, resourceLocator, componentResourceLocation)
Public Shared Sub LoadComponent (component As Object, resourceLocator As Uri, componentResourceLocation As ComponentResourceLocation)

매개 변수

component
Object

Platform::Object

IInspectable

로드할 XAML 콘텐츠의 루트 요소와 동일한 형식의 개체입니다.

resourceLocator
Uri Uri

로드할 리소스에 대한 URI(Uniform Resource Identifier) 경로를 설명하는 개체입니다.

componentResourceLocation
ComponentResourceLocation

열거형 값입니다.

특성

추가 정보

적용 대상