Freigeben über


Application.LoadComponent Methode

Definition

Überlädt

LoadComponent(Object, Uri)

Lädt eine XAML-Datei, die sich am angegebenen relativen Speicherort befindet, und konvertiert sie in eine instance des Objekts, das vom Stammelement der XAML-Datei angegeben wird.

LoadComponent(Object, Uri, ComponentResourceLocation)

Lädt eine XAML-Datei, die sich am angegebenen relativen Speicherort befindet, und konvertiert sie in eine instance des Objekts, das vom Stammelement der XAML-Datei angegeben wird.

LoadComponent(Object, Uri)

Lädt eine XAML-Datei, die sich am angegebenen relativen Speicherort befindet, und konvertiert sie in eine instance des Objekts, das vom Stammelement der XAML-Datei angegeben wird.

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)

Parameter

component
Object

Platform::Object

IInspectable

Ein Objekt vom gleichen Typ wie das Stammelement des zu ladenden XAML-Inhalts.

resourceLocator
Uri Uri

Ein Objekt, das den URI-Pfad (Uniform Resource Identifier) zur zu ladenden Ressource beschreibt.

Attribute

Hinweise

LoadComponent ist hauptsächlich für die Infrastruktur verfügbar. Sie können LoadComponent als Teil der generierten InitializeComponent-Logik sehen, die die partiellen Klassen einer XAML-Seite und deren CodeBehind integriert.

LoadComponent wird manchmal in einer Aufrufliste für eine Ausnahme zitiert, die letztendlich darauf zurückzuführen ist, dass Ihre App versucht, fehlerhafte XAML zu analysieren. In diesem Fall gibt es nichts, was App-Code tun kann, um die Verwendung von LoadComponent zu ändern, und die Möglichkeit, das Problem zu beheben, besteht darin, Ihre XAML-Quelle in einem XML-Editor zu überprüfen und zu beheben. In der Stapelüberwachungsmeldung kann es hilfreich sein, zu bestätigen, welche XAML-Datei nicht geladen wird. In Szenarien, in denen Sie Ressourcen oder andere xaml-Quellen zusammengeführt haben, die kombiniert werden, ist es nicht immer der offensichtliche XAML-Code auf Seitenebene, der nicht analysiert werden kann.

In den meisten App-Szenarien, in denen XAML-Inhalt geladen und eine Objektstruktur erstellt wird, sollte stattdessen XamlReader.Load verwendet werden.

Optimierung des Ladens von Ressourcen in Windows 8.1

Ab Windows 8.1 gibt es eine Optimierung zum Laden von Ressourcen, die durch das App-Modell und den Windows-Runtime XAML-Parser aktiviert wird. LoadComponent ist an diesem Szenario beteiligt, da es intern aufgerufen wird, um tatsächlich jedes Ressourcenwörterbuch zu laden, das aus einer XAML-Datei stammt, einschließlich derer für MergedDictionaries. Für Windows 8 hat der XAML-Parser Ressourcen aus app.xaml geladen und als Teil des Startvorgangs als Objekte erstellt. Das war nicht sehr effizient, wenn es dort große Wörterbücher gab. Außerdem enthielten diese Ressourcen die Elemente, die von allen drei Designs benötigt wurden, und zwei der drei Designs wären nicht einmal aktiv. Ab Windows 8.1 erstellt der XAML-Parser die Ressourcen nur, wenn sie speziell angefordert werden. Die Anforderung kann von anderen Ressourcen oder von einer App oder einem SEITEN-XAML stammen, wenn die einzelnen Elemente geladen werden. Dieses Parserverhalten minimiert die Zeit, die zum Lesen des Wörterbuchs auf App-Ebene zum Startzeit benötigt wird, und ermöglicht es, dass die erste App-Seite in den meisten Fällen schneller geladen wird. Ressourcen, die von anderen derzeit inaktiven Designs benötigt werden, werden nur geladen, wenn dieses Design vom Benutzer als aktives Design ausgewählt wird. Zu diesem Zeitpunkt wird jede Ressource, in der die {ThemeResource}-Markuperweiterung für die Anforderung verwendet wurde, basierend auf dem neu aktiven Design neu berechnet.

Windows 8-Verhaltensweise

Windows 8 verfügte nicht über die oben beschriebenen Optimierungen. Das ResourceDictionary für Application.Resources musste die Analyse abschließen, bevor eine andere Seite als der Begrüßungsbildschirm in das Fenster der App geladen werden konnte. Aus diesem Grund sehen Sie möglicherweise einige Unterschiede in der Zeitsteuerung, wenn Sie Ihre App für Windows 8.1. Die App sollte schneller geladen werden, es ist jedoch möglicherweise nicht möglich, diese Verbesserung im Vergleich zu anderen Änderungen zu isolieren, die Sie im Rahmen der Neuzuweisung an Ihrem App-Code vorgenommen haben. Zu den Stellen, an denen Möglicherweise Hinweise auf Zeitänderungen aufgrund optimierter Ressourcenladevorgänge angezeigt werden, gehören, wenn die Konstruktoren vom Parser für Objekte wie Application-Objekte , Konverter oder andere benutzerdefinierte Klassen aufgerufen werden. Apps, die für Windows 8 kompiliert wurden, aber unter Windows 8.1 ausgeführt werden, weisen weiterhin das Windows 8-Verhalten auf.

Weitere Informationen zu Leistung und XAML-Ressourcenfaktoring finden Sie unter Optimieren Ihres XAML-Markups.

Weitere Informationen

Gilt für:

LoadComponent(Object, Uri, ComponentResourceLocation)

Lädt eine XAML-Datei, die sich am angegebenen relativen Speicherort befindet, und konvertiert sie in eine instance des Objekts, das vom Stammelement der XAML-Datei angegeben wird.

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)

Parameter

component
Object

Platform::Object

IInspectable

Ein Objekt vom gleichen Typ wie das Stammelement des zu ladenden XAML-Inhalts.

resourceLocator
Uri Uri

Ein Objekt, das den URI-Pfad (Uniform Resource Identifier) zur zu ladenden Ressource beschreibt.

componentResourceLocation
ComponentResourceLocation

Ein Wert aus der Enumeration.

Attribute

Weitere Informationen

Gilt für: