2009-03-07 70 views
2

如何訪問WPF的內置風格/模板? 重用內置的WPF風格

例如我試圖將NavigationWindow的chrome移動到窗口的底部。我見過微軟的NavigationWindow template example ,但它非常冗長,並且不會重複使用默認導航欄。

我也試過看着Snoop裏面的樹。所有的chrome都包含在名爲「NavChrome」的網格元素中,但是我可以找到任何對它的引用。似乎沒有任何與之匹配的「PART_xyz」。

對於CTP,有些人提到使用「PFThemeNavigationWindowNavigationButtonForwardButtonStyle」等等,對於按鈕樣式,但是這似乎不再適用。

那麼,是否可以訪問這些內置的樣式?在其他地方重複使用它們會很好!

謝謝!


編輯: saldoukhov 的答案是非常有幫助的,但有沒有辦法做到這一點,而無需複製所有的XAML?對我來說,這看起來不像是一種非常的 DRY

回答

5

我通常在Expression Blend中做到這一點。選擇控制 - >右鍵單擊 - >編輯控制部件(模板) - >編輯副本...

然後它取決於你想要做什麼。如果你幸運的話,你正在編輯的模板包含引用key'ed資源的變化,你可以得到想要的效果,那麼你可以用這個鍵創建自己的資源,他們會「覆蓋」模板中的資源,在這種情況下,您無需攜帶完整的模板。但更多的時候,你需要改變模板的一些東西,所以你只需將它提取到自己的資源中並開始運行。

3

不是您的問題的答案,但有一點提示: 除了saldoukhov的回答,如果您沒有Expression Blend,還可以使用XamlPadX( http://blogs.msdn.com/llobo )訪問內置樣式。