Application.LoadComponent 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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 內容的根項目相同。
- 屬性
備註
LoadComponent 主要適用于基礎結構。 您可以在產生的 InitializeComponent 邏輯中看到 LoadComponent ,以整合 XAML 頁面的部分類別及其程式碼後置。
LoadComponent 有時會在呼叫堆疊中提及例外狀況,因為您的應用程式嘗試剖析不正確的 XAML。 在此情況下,應用程式程式碼無法執行任何動作來變更 LoadComponent 的使用方式,而修正問題的方式就是檢查 XML 編輯器中的 XAML 來源並加以修正。 堆疊追蹤訊息可能有説明的內容是確認哪些 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 沒有上述優化。 的 ResourceDictionaryApplication.Resources
必須在啟動顯示畫面以外的任何頁面載入應用程式 視窗之前完成剖析。 因此,您可能會在將應用程式重定為Windows 8.1目標時,看到一些時間差異。 應用程式應該更快載入,但可能無法隔離這項改進,與您在重定目標時對應用程式程式碼所做的其他變更。 您可能會因為優化資源載入而看到計時變更的一些位置,包括剖析器呼叫建構函式時, 例如 Application 物件、轉換器或其他自訂類別的物件。 針對 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 內容的根項目相同。
- componentResourceLocation
- ComponentResourceLocation
列舉值。
- 屬性