StaticResource 標記延伸

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

XAML Attribute Usage

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

XAML 物件項目用法

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

XAML 值

key 要求資源的金鑰。 如果資源是在標記中建立 ,或在 呼叫 ResourceDictionary.Add 資源是在程式碼中建立時,就會以參數的形式提供此索引鍵,這一開始是由 x:Key 指示詞所指派。

備註

重要

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

指定的 ResourceKey 應該對應至現有的資源,該資源會以您頁面、應用程式、可用控制項主題和外部資源或系統資源的某個層級上的 ResourceKey 指示詞來識別。 資源查閱會依該順序進行。 如需靜態和動態資源的資源查閱行為詳細資訊,請參閱 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

另請參閱