Application.Resources 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得應用程式範圍資源的集合,例如樣式、範本和筆刷。
ResourceDictionary Resources();
void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = application.resources;
application.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<Application>
<Application.Resources>
oneOrMoreResourceElements
</Application.Resources>
</Application>
屬性值
包含零個或多個應用程式範圍資源的 ResourceDictionary 物件。
範例
此範例示範如何宣告應用程式特定的資源, (此範例會建立來自啟動範本) 的通用轉換器類別實例。 然後它會在 內新增 Application.MergedDictionaries 屬性元素與 ResourceDictionary 元素,每個專案都會依 URI 參考 XAML 檔案作為 來源。
<Application.Resources>
<ResourceDictionary>
<common:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="rd1.xaml" />
<ResourceDictionary Source="rd2.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
備註
如果您已使用 Windows Presentation Foundation (WPF) 或 Microsoft Silverlight 建立應用程式,Windows 執行階段中的資源字典模型支援許多您可能熟悉的 XAML 資源概念。 如需詳細資訊,請參閱 ResourceDictionary 與 XAML 資源參考。
您在 ResourceDictionary 中定義的資源會填滿 Application.Resources
屬性元素,可用於從應用程式的任何頁面擷取。 如果您的許多應用程式頁面都使用相同的資源,這會很有利。 例如,如果您有用於應用程式 UI 中色彩配置的SolidColorBrush資源,且該色彩用於大部分頁面,則宣告 用於 Application.Resources
的SolidColorBrushApplication.Resources
是有意義的。
當您將資源新增至 Application.Resources
時,請在任何現有的 ResourceDictionary.MergedResources
之前或之後新增資源。 XAML 的規則不允許您將內容放在屬性元素標記的兩端。 如需詳細資訊,請參閱 XAML 語法指南。
舊版的注意事項
Windows 8.1中的資源載入優化
從Windows 8.1開始,應用程式模型和Windows 執行階段 XAML 剖析器會啟用資源載入優化。 針對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 標記。