共用方式為


StaticResource 標記延伸

透過查詢已定義資源的參考,來為任何 XAML 屬性提供值。 該資源的查詢行為類似於載入時查詢,會先查詢之前從目前 XAML 頁面的標記以及其他應用程式來源所載入的資源,並生成該資源值作為運行中的物件屬性值。

XAML Attribute Usage

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

XAML 物件項目用法

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

XAML 值

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

備註

重要

StaticResource 不應嘗試對在 XAML 檔案中進一步以語彙定義的資源進行前置引用。 這種作法不受支援,即使這類引用沒有失敗,嘗試前置引用也會在搜尋代表 ResourceDictionary 的內部雜湊表時造成載入時間的效能損失。 為了達到最佳結果,請調整資源字典的組成以避免前置引用。 若無法避免前置引用,請改用 DynamicResource 標記延伸

指定的 ResourceKey 應該對應至現有的資源,在頁面、應用程式、可用控制項主題和外部資源或系統資源中的某些層級上以 x:Key 指示詞進行識別。 資源查詢會依該順序進行。 想了解更多靜態和動態資源查詢行為的相關資訊,請參閱 XAML 資源

資源索引鍵可以是 XamlName 文法中所定義的任何字串。 資源索引鍵也可能是其他物件類型,例如 TypeType 索引鍵對於透過隱含樣式索引鍵依主題設定控制項樣式至關重要。 如需詳細資訊,請參閱控制項撰寫概觀

引用資源的另一種宣告方式是 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

另請參閱