StaticResource 標記延伸

藉由查閱已定義資源的參考,為任何 XAML 屬性提供值。 該資源的查閱行為類似于載入時間查閱,這會尋找先前從目前 XAML 頁面的標記以及其他應用程式來源載入的資源,並將產生該資源值作為執行時間物件中的屬性值。

XAML Attribute Usage

<object property="{StaticResource key}" ... />  

XAML 物件項目用法

<object>  
  <object.property>  
<StaticResource ResourceKey="key" ... />  
  </object.property>  
</object>  

XAML 值

Description
key 要求資源的金鑰。 如果資源是在標記中建立,或是在程式碼中建立資源時,或是在呼叫 ResourceDictionary.Add 資源是在程式碼中建立時提供做為 key 參數,則此索引鍵最初是由 x:Key 指示 詞指派。

備註

重要

StaticResource不得嘗試對 XAML 檔案中進一步定義的資源進行轉送參考。 嘗試這樣做不受支援,即使這類參考未失敗,嘗試轉送參考在搜尋代表 的內部雜湊表 ResourceDictionary 時,將會產生載入時間效能降低。 為了獲得最佳結果,請調整資源字典的組成,以避免向前參考。 如果您無法避免轉送參考,請改用 DynamicResource 標記延伸

指定的 ResourceKey 應該對應至現有資源,該資源會在頁面、應用程式、可用的控制項主題和外部資源,或系統資源的某些層級使用 x:Key 指示詞 來識別 。 資源查閱會依該順序進行。 如需靜態和動態資源之資源查閱行為的詳細資訊,請參閱 XAML 資源

資源索引鍵可以是 XamlName 文法 定義的任何字串。 資源索引鍵也可以是其他物件類型,例如 Type 。 索引 Type 鍵是控制項如何透過隱含樣式索引鍵以主題設定樣式的基礎。 如需詳細資訊,請參閱控制項撰寫概觀

參考資源的替代宣告式方法是作為 DynamicResource 標記延伸

屬性 (Attribute) 語法是最常搭配這個標記延伸來使用的語法。 StaticResource 識別項字串後所提供的字串語彙基元,是指派做為基礎 ResourceKey 延伸類別的 StaticResourceExtension 值。

StaticResource 可用於物件專案語法。 在此情況下,需要指定 屬性的值 ResourceKey

StaticResource 也可以用於會指定 ResourceKey 屬性 (Property) 做為 property=value 配對組的詳細屬性 (Attribute) 使用方式中。

<object property="{StaticResource ResourceKey=key}" ... />  

詳細使用方式通常是適用於具有一個以上可設定屬性或有些屬性為選擇性屬性的標記延伸。 因為 StaticResource 只有一個必要的可設定屬性,所以這種詳細使用方式並不常見。

在 WPF XAML 處理器實作中,這個標記延伸的處理是由 StaticResourceExtension 類別所定義。

StaticResource 是一種標記延伸。 如果必須將屬性 (Attribute) 值加上逸出符號,以免成為常值或處理常式名稱,而且這個動作必須更全面地實施 (而不是只對特定類型或屬性 (Property) 設定類型轉換子 (Type Converter)),則通常會實作標記延伸。 XAML 中的所有標記延伸都會在其屬性語法中使用 { 和 } 字元,這是 XAML 處理器辨識標記延伸必須處理屬性的慣例。 如需詳細資訊,請參閱標記延伸和 WPF XAML

另請參閱