Application.LoadComponent メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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 コンテンツのルート要素と同じ型のオブジェクト。
- 属性
注釈
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 コンテンツのルート要素と同じ型のオブジェクト。
- componentResourceLocation
- ComponentResourceLocation
列挙体の値。
- 属性