Application.Resources 屬性

定義

取得應用程式範圍資源的集合,例如樣式、範本和筆刷。

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.ResourcesSolidColorBrushApplication.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 標記

適用於

另請參閱