WPF的ControlTemplate和DataTemplate簡介


首先理清幾個概念,Template、ControlTemplate、ContentTemplate、DataTemplate、ContentControl

這幾個東西名字都差不多,意思感覺也接近,初次接觸真的難以理解,那么現在開始區分了:

1.子類:

  ContentControl是Control的子類,專門用於顯示內容的,如常用的Label就是ContentControl的子類

2.屬性:

     Template 是Control類的一個屬性;

     ContentTemplate是ContentControl的一個屬性;

3.類型:

     Control的Template屬性是ControlTemplate類型的;

     ContentControl的ContentTemplate屬性是DataTemplate類型的;

4.用途:

    ControlTemplate,顧名思義,是控制控件外觀和結構的,一般對於某個控件的類型,如一個Button長什么樣子,Buttton里有一個列表,列表左側顯示圖片等;

    DataTemplate,則是控制一個控件它的數據要如何呈現的,一般對於的是某種數據的類型,(一般是用來修飾其Content屬性的),所以要求為該類型的屬性賦值,

           如:

                Label的Content屬性賦值后,可以設置Label的ContentTemplate;

                ItemsControl的ItemsSource屬性賦值后,可以設置其的ItemTemplate;

                HeaderItemsControl的Header屬性賦值后,可以設置其的HeaderTemplate;

5.WPF模板類的繼承關系

     FrameworkTemplate

     派生出:

           ControlTemplate(決定控件外觀)、ItemsPanelTemplate(決定集合的容器)、DataTemplate(決定數據的呈現方式)

         而DateTemplate又派生出 HierarchicalDataTemplate(層次數據模板,一般用於TreeView和Menu)

 

更多內容參考:http://www.cnblogs.com/YangMark/p/3154375.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM