{CustomResource} 標記延伸

透過評估對來自自訂資源尋找實作的資源的參考,為任何 XAML 屬性提供值。 資源查閱是由 CustomXamlResourceLoader 類別實作所執行。

XAML 屬性用法

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

XAML 值

詞彙 描述
key 要求資源的金鑰。 最初指派金鑰的方式特定於目前註冊使用的 CustomXamlResourceLoader 類別的實作。

備註

CustomResource 是一種用於取得在自訂資源儲存庫中其他位置定義的值的技術。 這項技術相對進階,而且大部分 Windows 執行階段應用程式案例都未使用。

本主題中未描述 CustomResource 如何解析為資源字典,因為根據 CustomXamlResourceLoader 的實作方式,這可能會有很大差異。

只要 Windows 執行階段 XAML 解析器遇到標記中的用法,就會呼叫 CustomXamlResourceLoader 實作的 GetResource 方法{CustomResource}。 傳遞給 GetResourceresourceId 來自 key 參數,其他輸入參數來自內容,例如用法套用於哪個屬性。

預設情況下,{CustomResource}用法無法運作 (GetResource 的基本實作不完整)。 若要進行有效的 {CustomResource} 參考,您必須執行下列步驟:

  1. CustomXamlResourceLoader 衍生自訂類別,並覆寫 GetResource 方法。 請勿在實作中呼叫基底。
  2. CustomXamlResourceLoader.Current 設定為在初始化邏輯中參考您的類別。 這必須在載入包含 {CustomResource} 延伸模組使用方式的任何頁面層級 XAML 之前發生。 設定 CustomXamlResourceLoader.Current 的一個位置是在 App.xaml 程式碼隱藏範本中為您產生的 Application 子類別建構函式中。
  3. 現在,您可以在 {CustomResource} XAML 中使用應用程式載入為頁面的延伸模組,或從 XAML 資源字典內載入。

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