2010-02-24 27 views

回答

6

甲樣式控制的控制的各個屬性。例如,按鈕樣式可以說,「對於每個按鈕,都使用此背景。」風格正在改變控制上的單一屬性。

控件模板實際上是處理控件如何顯示其綁定數據的方式。不是說「我想覆蓋控件的屬性」,而是將其他較小的控件組合到一個控件中,該控件可以呈現綁定數據的不同視圖。

以前在WinForms中,如果您想編寫一個自定義列表框(比如每個項目旁邊都有一個圖標),則必須從ListView控件繼承並重寫繪畫方法。這涉及大量的實驗 - 巨大的痛苦。使用WPF模板,可以使用XAML一起構造更小的控件,並將它們綁定到父控件的不同屬性。您實際上是爲控件定義了可視化樹。

請參閱this查爾斯彼得堡深入解釋文章。

+0

您好,非常感謝您對本文的詳細解釋和鏈接。我會盡快看看它。 – 2010-02-26 18:10:17

3

想象一下,你的控制權是一所房子。

A Style在概念上類似於放下新地毯和畫牆。房子本身仍然是一樣的,但它的外觀是不同的。

A ControlTemplate等同於敲開牆壁或添加溫室。房子的實際結構已經改變。

如果要更改控件E.G.的外觀,請使用Style。它的背景顏色或邊框的粗細。當您需要更改控件的基礎結構時,請使用ControlTemplate。當您想要更改控件的某些方面的佈局時,這非常有用。一個很好的例子是this文章,它將TabControl重新模板化爲看起來像Microsoft Outlook中的導航器。

相關問題