Application.LoadComponent Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
LoadComponent(Object, Uri) |
Carga un archivo XAML que se encuentra en la ubicación relativa especificada y lo convierte en una instancia del objeto especificado por el elemento raíz del archivo XAML. |
LoadComponent(Object, Uri, ComponentResourceLocation) |
Carga un archivo XAML que se encuentra en la ubicación relativa especificada y lo convierte en una instancia del objeto especificado por el elemento raíz del archivo XAML. |
LoadComponent(Object, Uri)
Carga un archivo XAML que se encuentra en la ubicación relativa especificada y lo convierte en una instancia del objeto especificado por el elemento raíz del archivo 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)
Parámetros
- component
-
Object
Platform::Object
IInspectable
Objeto del mismo tipo que el elemento raíz del contenido XAML que se va a cargar.
Objeto que describe la ruta de acceso del identificador uniforme de recursos (URI) al recurso que se va a cargar.
- Atributos
Comentarios
LoadComponent existe principalmente para la infraestructura. Puedes ver LoadComponent como parte de la lógica initializeComponent generada que integra las clases parciales de una página XAML y su código subyacente.
LoadComponent a veces se cita en una pila de llamadas para una excepción que, en última instancia, se debe a que la aplicación está intentando analizar xaml incorrecto. En este caso, no hay nada que el código de la aplicación pueda hacer para cambiar cómo se usa LoadComponent y la manera de corregir el problema es comprobar el origen XAML en un editor XML y corregirlo. Lo que puede resultar útil en el mensaje de seguimiento de la pila es confirmar qué archivo XAML no se está cargando. En escenarios en los que se han combinado recursos u otros orígenes XAML múltiples, no siempre es el XAML obvio de nivel de página que no se puede analizar.
La mayoría de los escenarios de aplicación que implican cargar contenido XAML y generar un árbol de objetos debe usar XamlReader.Load en su lugar.
Optimización de carga de recursos en Windows 8.1
A partir de Windows 8.1, hay una optimización de carga de recursos habilitada por el modelo de aplicación y el analizador XAML de Windows Runtime. LoadComponent está implicado en este escenario porque se invoca internamente para cargar realmente cualquier diccionario de recursos que proceda de un archivo XAML, incluidos los de MergedDictionaries. Para Windows 8, el analizador XAML cargó recursos desde app.xaml y creó cada uno de ellos como objetos como parte del inicio. Eso no era muy eficaz si había diccionarios grandes allí. Además, esos recursos incluían los elementos que necesitaban los tres temas y dos de los tres temas ni siquiera estarían activos. A partir de Windows 8.1, el analizador XAML solo crea los recursos cuando se solicitan específicamente. La solicitud puede provenir de otros recursos o de XAML de aplicación o página a medida que se carga cada uno. Este comportamiento del analizador minimiza el tiempo necesario para leer el diccionario de nivel de aplicación en tiempo de inicio y permite que la primera página de la aplicación se cargue más rápido en la mayoría de los casos. Los recursos necesarios para otros temas inactivos actualmente solo se cargan si el usuario elige ese tema para convertirse en el tema activo. En ese momento, cualquier recurso en el que se usó la extensión de marcado {ThemeResource} para la solicitud se recalcula en función del tema recién activo.
Comportamiento de Windows 8
Windows 8 no tenía las optimizaciones descritas anteriormente.
ResourceDictionary para Application.Resources
tuvo que finalizar el análisis antes de que cualquier página que no sea la pantalla de presentación pudiera cargarse en la ventana de la aplicación. Debido a esto, es posible que vea algunas diferencias en el tiempo al volver a configurar la aplicación para Windows 8.1. La aplicación debe cargarse más rápido, pero es posible que no sea posible aislar esta mejora frente a otros cambios realizados en el código de la aplicación como parte del destino. Algunos de los lugares donde es posible que vea evidencia de cambios de tiempo debido a la carga de recursos optimizados incluyen cuando el analizador llama a los constructores, para objetos como objetos Application , convertidores u otras clases personalizadas. Las aplicaciones compiladas para Windows 8 que se ejecuten en Windows 8.1 siguen usando el comportamiento de Windows 8.
Para obtener más información sobre el rendimiento y la factorización de recursos XAML, consulta Optimizar el marcado XAML.
Consulte también
Se aplica a
LoadComponent(Object, Uri, ComponentResourceLocation)
Carga un archivo XAML que se encuentra en la ubicación relativa especificada y lo convierte en una instancia del objeto especificado por el elemento raíz del archivo 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)
Parámetros
- component
-
Object
Platform::Object
IInspectable
Objeto del mismo tipo que el elemento raíz del contenido XAML que se va a cargar.
Objeto que describe la ruta de acceso del identificador uniforme de recursos (URI) al recurso que se va a cargar.
- componentResourceLocation
- ComponentResourceLocation
Valor de la enumeración.
- Atributos