內嵌樣式和模板
Windows Presentation Foundation (WPF)提供 Style 物件和範本物件(FrameworkTemplate 子類別),作為在資源中定義元素視覺外觀的方式,以便多次使用。 因此,XAML 中類型為 Style 和 FrameworkTemplate 的屬性幾乎總是參考現有的樣式和範本,而不是在程式內嵌定義新的樣式。
內嵌樣式和範本的限制
在 Extensible Application Markup Language (XAML)中,樣式和範本屬性在技術上可以透過兩種方式之一來設定。 您可以使用屬性語法來參考資源內定義的樣式,例如 <
物件Style="{StaticResource
myResourceKey}" .../>
。 或者,您可以使用屬性元素語法來定義內嵌樣式,例如:
<
物件>
<
物件.Style>
<
Style
.../>
</
物件.Style>
</
物件>
屬性使用方式更為常見。 內嵌且未在資源中定義的樣式,一定只限於包含元素,而且無法輕易重複使用,因為它沒有資源鍵。 一般而言,資源定義的樣式更為多功能且實用,也更符合 Windows Presentation Foundation (WPF) 程式設計模型將程式碼中的程式邏輯與標記中的設計分離的原則。
通常沒有理由設定樣式或範本內嵌,即使您只打算在該位置使用該樣式或範本。 大部分可以採用樣式或範本的元素也都支援內容屬性和內容模型。 如果您只使用透過樣式設定或範本化一次建立的任何邏輯樹狀結構,則只要在直接標記中以對等子元素填入該內容屬性會比較容易。 這會完全略過樣式和範本機制。
傳回物件之標記延伸所啟用的其他語法,也可以用於樣式和範本。 有兩個可能使用情境的這類擴充套件包括 TemplateBinding 和 Binding。