模板概述

書名:WPF專業(yè)編程指南
作者:李應(yīng)保
出版社:電子工業(yè)出版社
出版時(shí)間:2010-01
ISBN:9787121100116


一、模板概述

  • 所有的模板類都是從FrameworkTemplate類中派生出來的,F(xiàn)rameworkTemplate是一個(gè)抽象類,它管理模板的一些基本屬性,如視覺樹、資源等。FrameworkTemplate是相關(guān)對(duì)象(DependencyObject),所以它具有相關(guān)對(duì)象的所有功能。
  • 從FrameworkTemplate中派生出三個(gè)類:ControlTemplate、ItemsPanelTemplate和DataTemplate,從DataTemplate類中又派生出了ContentPresenter和HierachicalDataTemplate兩個(gè)類。
    圖10-1示出了WPF中管理模板的類結(jié)構(gòu)。


    圖10-1 WPF中管理模板的類結(jié)構(gòu)
  • 我們知道,所有的WPF控件都是從Control類中派生出來的,Control類中有一個(gè)屬性Template,其類型是ControlTemplate。
    設(shè)置Control類中的Template屬性就可以改變控件在界面上的外觀。
    對(duì)于條目控件(ItemsControl),通常并不需要替換整個(gè)控件的模板,而只需要改變顯示條目的方式,ItemsPanelTemplate類就是為這類控件設(shè)計(jì)的,當(dāng)然也可以設(shè)定條目控件的模板,從而徹底改變條目控件的外觀。
    ItemsControl除了繼承了Control類中的Template屬性之外,增加了三個(gè)與模板相關(guān)的屬性:ItemsPanel、ItemTemplate和ItemTemplateSelector。
    ItemsPanel的類型為ItemsPanelTemplate,用來設(shè)定條目面板的視覺樹。
    ItemTemplate的類型為DataTemplate,通常條目控件中每個(gè)具體的條目是一個(gè).Net數(shù)據(jù)對(duì)象。
    設(shè)定DataTemplate可以把特定的數(shù)據(jù)對(duì)象以特有的方式展現(xiàn)出來,ItemTemplateSelector屬性用來靈活地用不同模板來顯示不同條目的目的。

  • 對(duì)于內(nèi)容控件,我們通常要在替換控件外觀的同時(shí)顯示控件的內(nèi)容。比如說按鈕控件,既要能改變按鈕的外觀,又能讓控件靈活改變其中的內(nèi)容。ContentPresenter類就是為此而設(shè)計(jì)的,它可以靈活地把控件中的內(nèi)容,粘貼到模板類中。

  • 條目控件中派生出來的另外三個(gè)類Menu、ContextMenu和TreeView通常具有層次結(jié)構(gòu),HierarchicalDataTemplate就是專門為這種結(jié)構(gòu)設(shè)計(jì)的,HierarchicalDataTemplate中含有ItemSource、ItemTemplate和ItemTemplateSelector屬性,這些屬性用來設(shè)置條目的相應(yīng)模板。

  • 和控件的風(fēng)格一樣,模板也可以直接嵌入到控件中,或控件的資源中,或者應(yīng)用程序的視覺樹上任何一個(gè)節(jié)點(diǎn)的資源中。與位于資源中的風(fēng)格一樣,模板也是沿著視覺樹從樹根向樹枝傳遞的。

  • 在模板中構(gòu)建視覺樹時(shí),常常需要用到控件中的相關(guān)屬性。為了在模板中方便地訪問控件的相關(guān)屬性,需要用到數(shù)據(jù)綁定。TemplateBindingExtension類就是為此設(shè)計(jì)的,這個(gè)類比BindingExtension所用的計(jì)算機(jī)的資源要少。

  • 風(fēng)格用來改變某個(gè)或某類控件的屬性,模板比風(fēng)格有更大的自由度,有時(shí)候需要結(jié)合使用這兩種技術(shù)。
    比如在風(fēng)格里根據(jù)實(shí)際情形設(shè)置控件的模板,這樣可以使得控件更加多樣化。
    總而言之,在WPF里,只有你想不到的、沒有你做不到的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 書名:WPF專業(yè)編程指南作者:李應(yīng)保出版社:電子工業(yè)出版社出版時(shí)間:2010-01ISBN:97871211001...
    大龍10閱讀 133評(píng)論 0 12
  • 書名:WPF專業(yè)編程指南作者:李應(yīng)保出版社:電子工業(yè)出版社出版時(shí)間:2010-01ISBN:97871211001...
    大龍10閱讀 194評(píng)論 0 13
  • 書名:WPF專業(yè)編程指南作者:李應(yīng)保出版社:電子工業(yè)出版社出版時(shí)間:2010-01ISBN:97871211001...
    大龍10閱讀 176評(píng)論 0 18
  • 書名:WPF專業(yè)編程指南作者:李應(yīng)保出版社:電子工業(yè)出版社出版時(shí)間:2010-01ISBN:97871211001...
    大龍10閱讀 153評(píng)論 0 13
  • 書名:WPF專業(yè)編程指南作者:李應(yīng)保出版社:電子工業(yè)出版社出版時(shí)間:2010-01ISBN:97871211001...
    大龍10閱讀 175評(píng)論 0 12

友情鏈接更多精彩內(nèi)容