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) к ресурсу для загрузки.

Атрибуты

Комментарии

LoadComponent существует в основном для инфраструктуры. LoadComponent можно увидеть как часть созданной логики InitializeComponent , которая интегрирует разделяемые классы страницы XAML и ее код программной части.

LoadComponent иногда цитируется в стеке вызовов для исключения, которое в конечном итоге связано с тем, что приложение пытается проанализировать неправильный КОД XAML. В этом случае код приложения ничего не может сделать, чтобы изменить способ использования LoadComponent, и способ устранения проблемы заключается в том, чтобы проверка источник XAML в редакторе XML и исправить его. Сообщение трассировки стека может помочь подтвердить, какой ФАЙЛ XAML не загружается. В сценариях, в которых вы объединили ресурсы или другие несколько источников XAML, не всегда очевидно, что XAML на уровне страницы не анализируется.

В большинстве сценариев приложений, которые включают загрузку содержимого XAML и создание дерева объектов, следует использовать XamlReader.Load .

Оптимизация загрузки ресурсов в Windows 8.1

Начиная с Windows 8.1, существует оптимизация загрузки ресурсов, которая включается моделью приложения и среда выполнения Windows средства синтаксического анализа XAML. LoadComponent участвует в этом сценарии, так как он вызывается внутренне для фактической загрузки любого словаря ресурсов, который поступает из ФАЙЛА XAML, включая словари для MergedDictionaries. Для Windows 8 средство синтаксического анализа XAML загружало ресурсы из app.xaml и создавало каждый из них как объекты в процессе запуска. Это было не очень эффективно, если там были большие словари. Кроме того, эти ресурсы включали элементы, необходимые для всех трех тем, и две из трех тем даже не были активными. Начиная с Windows 8.1 средство синтаксического анализа XAML создает ресурсы только при их специальном запросе. Запрос может поступать из других ресурсов, а также из XAML приложения или страницы при загрузке каждого из них. Такое поведение средства синтаксического анализа позволяет свести к минимуму время, необходимое для чтения словаря на уровне приложения во время запуска, и в большинстве случаев позволяет быстрее загружать первую страницу приложения. Ресурсы, необходимые для других неактивных в настоящее время тем, загружаются только в том случае, если эта тема выбрана пользователем в качестве активной темы. В то время любой ресурс, в котором для запроса использовалось расширение разметки {ThemeResource} , пересчитывается на основе новой активной темы.

Работа в Windows 8

В Windows 8 отсутствуют описанные выше оптимизации. ResourceDictionary для Application.Resources должен был завершить синтаксический анализ, прежде чем какая-либо страница, кроме экрана-заставки, сможет загрузиться в окно приложения. Из-за этого при перенацелив приложение для Windows 8.1, вы можете увидеть некоторые различия во времени. Приложение должно загружаться быстрее, однако это улучшение может быть невозможно изолировать по сравнению с другими изменениями, внесенными в код приложения в рамках перенацеления. Некоторые из мест, где можно увидеть признаки изменения времени из-за оптимизированной загрузки ресурсов, включают, когда конструкторы вызываются синтаксический анализатор, для таких объектов, как объекты приложения , преобразователи или другие пользовательские классы. Приложения, которые скомпилированы для 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) к ресурсу для загрузки.

componentResourceLocation
ComponentResourceLocation

Значение перечисления.

Атрибуты

См. также раздел

Применяется к