Application.LoadComponent メソッド

定義

オーバーロード

LoadComponent(Object, Uri)

指定した相対位置にある XAML ファイルを読み込み、XAML ファイルのルート要素で指定された オブジェクトのインスタンスに変換します。

LoadComponent(Object, Uri, ComponentResourceLocation)

指定した相対位置にある XAML ファイルを読み込み、XAML ファイルのルート要素で指定された オブジェクトのインスタンスに変換します。

LoadComponent(Object, Uri)

指定した相対位置にある XAML ファイルを読み込み、XAML ファイルのルート要素で指定された オブジェクトのインスタンスに変換します。

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 は、内部的に呼び出され、XAML ファイルから取得されたリソース ディクショナリ ( MergedDictionaries 用のものを含む) を実際に読み込むため、このシナリオに関係します。 Windows 8 の場合、XAML パーサーは app.xaml からリソースを読み込み、スタートアップの一部として各リソースをオブジェクトとして作成しました。 大きな辞書がある場合、それは非常に効率的ではありませんでした。 また、これらのリソースには、3 つのテーマすべてに必要な項目が含まれており、3 つのテーマのうち 2 つもアクティブになりません。 Windows 8.1以降、XAML パーサーは、リソースが特に要求されたときにのみリソースを作成します。 要求は、他のリソースから、またはそれぞれが読み込まれるとアプリまたはページの XAML から送信される場合があります。 このパーサーの動作により、起動時にアプリ レベルのディクショナリの読み取りにかかる時間が最小限に抑えられます。ほとんどの場合、最初のアプリ ページの読み込みが高速になります。 他の現在非アクティブなテーマで必要なリソースは、そのテーマがユーザーによってアクティブなテーマになるように選択されている場合にのみ読み込まれます。 その時点で、 {ThemeResource} マークアップ拡張機能 が要求に使用されたリソースは、新しくアクティブなテーマに基づいて再計算されます。

Windows 8 の動作

Windows 8 には上記の最適化がありませんでした。 の ResourceDictionaryApplication.Resources は、スプラッシュスクリーン以外のページがアプリのウィンドウに読み込まれる前に解析を完了する必要がありました。 このため、アプリをWindows 8.1に再ターゲットするタイミングにいくつかの違いが生じます。 アプリの読み込み速度は速くなりますが、この改善点と、再ターゲットの一環としてアプリ コードに加えた他の変更を分離できない場合があります。 最適化されたリソース読み込みによるタイミング変更の証拠が表示される場所には、 Application オブジェクト、コンバーター、その他のカスタム クラスなどのオブジェクトに対して、パーサーによってコンストラクターが呼び出されたときなどがあります。 Windows 8 用にコンパイルしたアプリは、Windows 8.1 上で実行しても Windows 8 のときと同じ動作になります。

パフォーマンスと XAML リソースファクターの詳細については、「 XAML マークアップを最適化する」を参照してください。

こちらもご覧ください

適用対象

LoadComponent(Object, Uri, ComponentResourceLocation)

指定した相対位置にある XAML ファイルを読み込み、XAML ファイルのルート要素で指定された オブジェクトのインスタンスに変換します。

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

列挙体の値。

属性

こちらもご覧ください

適用対象