共用方式為


ThemeDictionary 標記延伸

提供一種方法,讓自訂控制項作者或整合協力廠商控制項的應用程式載入佈景主題專用的資源字典,以用於設定控制項的樣式。

XAML 屬性使用方式

<object property="{ThemeDictionary assemblyUri}" .../>

XAML 物件項目使用方式

<object>
  <object.property>
    <ThemeDictionary AssemblyName="assemblyUri"/>
  <object.property>
<object>

XAML 值

assemblyUri

組件 (Assembly) 的uniform resource identifier (URI),其中包含佈景主題資訊。 這通常是參考較大封裝中之組件的 Pack URI。 組件資源和 Pack URI 簡化了部署問題。 如需詳細資訊,請參閱WPF 中的 Pack URI

備註

這個延伸項目的目的只是要填入一個特定的屬性值:ResourceDictionary.Source 的值。

使用這個延伸項目,您可以指定單一資源限定組件,而組件中則包含只有在將 Windows Aero 佈景主題套用至使用者系統時才會使用的某些樣式、Luna 佈景主題正在作用時的其他樣式等等。 透過這個延伸項目,控制項專用資源字典的內容可以在必要時自動失效,並重新載入以變成另一種佈景主題的專用資源。

assemblyUri 字串 (AssemblyName 屬性值) 構成命名規範的基礎,用以識別適用於特定佈景主題的字典。 ThemeDictionary 的 ProvideValue 邏輯則讓此命名規範更為完備,方法是產生uniform resource identifier (URI),使其指向先行編譯之資源組件內的特定佈景主題字典變數。 本文並未涵蓋這種命名規範,或是佈景主題與一般控制項樣式設定和頁面/應用程式層級樣式設定的完整概念說明。 使用 ThemeDictionary 的基本案例是指定在應用程式層級宣告之 ResourceDictionary 的 Source 屬性。 當您透過 ThemeDictionary 延伸項目提供組件的 URI,而非直接的 direct URI 時,此延伸邏輯便會提供系統佈景主題變更時適用的失效邏輯。

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

ThemeDictionary 也可在物件項目語法中使用。 在這種情況下,您必須指定 AssemblyName 屬性的值。

ThemeDictionary 也可用於將 Member 屬性 (Property) 指定為 property=value 配對的詳細屬性 (Attribute) 使用方式。

<object property="{ThemeDictionary AssemblyName=assemblyUri}" .../>

繁複的使用方法所適用的擴充,通常是具有一個以上可設定屬性或有些屬性為選擇性。 因為 ThemeDictionary 只有一個必要的可設定屬性,所以這種詳細使用方式並不常見。

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

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

請參閱

概念

設定樣式和範本

XAML 概觀 (WPF)

標記延伸和 WPF XAML

WPF 應用程式資源、內容和資料檔案