Condividi tramite


Application.LoadComponent Metodo

Definizione

Overload

LoadComponent(Object, Uri)

Carica un file XAML che si trova nel percorso relativo specificato e lo converte in un'istanza dell'oggetto specificato dall'elemento radice del file XAML.

LoadComponent(Object, Uri, ComponentResourceLocation)

Carica un file XAML che si trova nel percorso relativo specificato e lo converte in un'istanza dell'oggetto specificato dall'elemento radice del file XAML.

LoadComponent(Object, Uri)

Carica un file XAML che si trova nel percorso relativo specificato e lo converte in un'istanza dell'oggetto specificato dall'elemento radice del file 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)

Parametri

component
Object

Platform::Object

IInspectable

Oggetto dello stesso tipo dell'elemento radice del contenuto XAML da caricare.

resourceLocator
Uri Uri

Oggetto che descrive il percorso URI (Uniform Resource Identifier) della risorsa da caricare.

Attributi

Commenti

LoadComponent esiste principalmente per l'infrastruttura. È possibile visualizzare LoadComponent come parte della logica InitializeComponent generata che integra le classi parziali di una pagina XAML e il relativo code-behind.

LoadComponent a volte viene citato in uno stack di chiamate per un'eccezione che è in definitiva perché l'app sta tentando di analizzare xaml non valido. In questo caso non c'è nulla che il codice dell'app possa fare per modificare il modo in cui viene usato LoadComponent e il modo per risolvere il problema consiste nel controllare l'origine XAML in un editor XML e risolverlo. Ciò che potrebbe essere utile dal messaggio di analisi dello stack conferma quale file XAML non viene caricato. Negli scenari in cui sono state unite risorse o altre origini XAML combinate, non è sempre il codice XAML ovvio a livello di pagina che non riesce ad analizzare.

La maggior parte degli scenari di app che comportano il caricamento di contenuto XAML e la produzione di un albero di oggetti deve usare xamlReader.Load .

Ottimizzazione del caricamento delle risorse in Windows 8.1

A partire da Windows 8.1, è disponibile un'ottimizzazione del caricamento delle risorse abilitata dal modello di app e dal parser XAML Windows Runtime. LoadComponent è coinvolto in questo scenario perché viene richiamato internamente per caricare effettivamente qualsiasi dizionario di risorse proveniente da un file XAML, inclusi quelli per MergedDictionaries. Per Windows 8, il parser XAML ha caricato le risorse da app.xaml e le ha create come oggetti come parte dell'avvio. Non era molto efficiente se ci fossero grandi dizionari lì. Inoltre, tali risorse includevano gli elementi necessari per tutti e tre i temi e due dei tre temi non sarebbero nemmeno attivi. A partire da Windows 8.1, il parser XAML crea solo le risorse quando vengono richieste in modo specifico. La richiesta può provenire da altre risorse o dal codice XAML dell'app o della pagina durante il caricamento. Questo comportamento del parser riduce al minimo il tempo necessario per leggere il dizionario a livello di app al momento dell'avvio e consente alla prima pagina dell'app di caricare più velocemente nella maggior parte dei casi. Le risorse necessarie per altri temi attualmente inattivi vengono caricate solo se il tema viene scelto per diventare il tema attivo dall'utente. In quel momento, qualsiasi risorsa in cui è stata usata l'estensione di markup {ThemeResource} per la richiesta viene ricalcolata in base al tema appena attivo.

Comportamento di Windows 8

Windows 8 non aveva le ottimizzazioni descritte in precedenza. ResourceDictionary per Application.Resources doveva completare l'analisi prima che qualsiasi pagina diversa dalla schermata iniziale potesse essere caricata nella finestra dell'app. Per questo motivo è possibile che vengano visualizzate alcune differenze nella tempistica durante la ridefinizione della destinazione dell'app per Windows 8.1. L'app dovrebbe essere caricata più velocemente, ma potrebbe non essere possibile isolare questo miglioramento rispetto ad altre modifiche apportate al codice dell'app come parte del retargeting. Alcune delle posizioni in cui potrebbero verificarsi modifiche di intervallo dovute al caricamento ottimizzato delle risorse includono quando i costruttori vengono chiamati dal parser, per oggetti come oggetti Application , convertitori o altre classi personalizzate. Le app create per Windows 8 che vengono eseguite in Windows 8.1 continuano a usare il comportamento di Windows 8.

Per altre info sulle prestazioni e sul factoring delle risorse XAML, vedi Ottimizzare il markup XAML.

Vedi anche

Si applica a

LoadComponent(Object, Uri, ComponentResourceLocation)

Carica un file XAML che si trova nel percorso relativo specificato e lo converte in un'istanza dell'oggetto specificato dall'elemento radice del file 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)

Parametri

component
Object

Platform::Object

IInspectable

Oggetto dello stesso tipo dell'elemento radice del contenuto XAML da caricare.

resourceLocator
Uri Uri

Oggetto che descrive il percorso URI (Uniform Resource Identifier) della risorsa da caricare.

componentResourceLocation
ComponentResourceLocation

Valore dell'enumerazione.

Attributi

Vedi anche

Si applica a