{CustomResource} 標記延伸
透過評估對來自自訂資源尋找實作的資源的參考,為任何 XAML 屬性提供值。 資源查閱是由 CustomXamlResourceLoader 類別實作所執行。
XAML 屬性用法
<object property="{CustomResource key}" .../>
XAML 值
詞彙 | 描述 |
---|---|
key | 要求資源的金鑰。 最初指派金鑰的方式特定於目前註冊使用的 CustomXamlResourceLoader 類別的實作。 |
備註
CustomResource 是一種用於取得在自訂資源儲存庫中其他位置定義的值的技術。 這項技術相對進階,而且大部分 Windows 執行階段應用程式案例都未使用。
本主題中未描述 CustomResource 如何解析為資源字典,因為根據 CustomXamlResourceLoader 的實作方式,這可能會有很大差異。
只要 Windows 執行階段 XAML 解析器遇到標記中的用法,就會呼叫 CustomXamlResourceLoader 實作的 GetResource 方法{CustomResource}
。 傳遞給 GetResource 的 resourceId 來自 key 參數,其他輸入參數來自內容,例如用法套用於哪個屬性。
預設情況下,{CustomResource}
用法無法運作 (GetResource 的基本實作不完整)。 若要進行有效的 {CustomResource}
參考,您必須執行下列步驟:
- 從 CustomXamlResourceLoader 衍生自訂類別,並覆寫 GetResource 方法。 請勿在實作中呼叫基底。
- 將 CustomXamlResourceLoader.Current 設定為在初始化邏輯中參考您的類別。 這必須在載入包含
{CustomResource}
延伸模組使用方式的任何頁面層級 XAML 之前發生。 設定 CustomXamlResourceLoader.Current 的一個位置是在 App.xaml 程式碼隱藏範本中為您產生的 Application 子類別建構函式中。 - 現在,您可以在
{CustomResource}
XAML 中使用應用程式載入為頁面的延伸模組,或從 XAML 資源字典內載入。
CustomResource 是標記延伸。 如果必須將屬性 (Attribute) 值加上逸出符號,以免成為常值或處理常式名稱,而且這個動作必須更全面地實施 (而不是只對特定類型或屬性 (Property) 設定類型轉換子 (Type Converter)),則通常會實作標記延伸。 XAML 中的所有標記延伸在其屬性語法中都使用「{" and "}」字元,這是 XAML 處理器識別標記延伸必須處理屬性的慣例。