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.
Объект , описывающий путь универсального кода ресурса (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.
Объект , описывающий путь универсального кода ресурса (URI) к ресурсу для загрузки.
- componentResourceLocation
- ComponentResourceLocation
Значение перечисления.
- Атрибуты