在控件模板中融入內(nèi)容
你也許會(huì)注意到一件事情,在上面的“RoundButton”控件模板中,按鈕的大小,以及顯示在其中的內(nèi)容,都是寫死的(總是“Push Me!”)。
好消息是,WPF 和 Silverlight也能讓我們對這些設(shè)置進(jìn)行定制。我們可以在控件模板中通過使用 {TemplateBinding ControlProperty} 的標(biāo)識(shí)擴(kuò)展句法 (markup extension syntax) 來綁定到控件的屬性來實(shí)現(xiàn)。這允許我們的控件模板隨著外部開發(fā)人員設(shè)置在控件的屬性而改變:
點(diǎn)擊放大
注意上面,不是加 <TextBlock>控件來顯示內(nèi)容,而是使用<ContentPresenter>控件。那會(huì)允許我們不光讓按鈕顯示文字字符串,而且可以顯示任何自定義的內(nèi)容(就象我們在本教程早先時(shí)候做的那樣)。
然后,我們可以在下面的三個(gè)按鈕上使用上面的Style(每個(gè)按鈕都有不同的內(nèi)容和屬性設(shè)置):
點(diǎn)擊放大
上面的按鈕然后就會(huì)象下面這樣顯示(對了,縮小的日歷控件還支持翻頁和日期選擇。
如果我們想進(jìn)一步,我們還可以往ControlTemplate中加故事板動(dòng)畫(來處理象“hover(懸。,"focus(得到焦點(diǎn))","pushed(按下)"這樣的按鈕狀態(tài))。這個(gè)能力允許我們創(chuàng)建非常優(yōu)美的用戶交互場景,同時(shí)還能促成HTML中不能實(shí)現(xiàn)的場景。
在應(yīng)用中操作控件的開發(fā)人員可以對所有這些樣式和控件交互定制保持一無所知,他們還可以依然如故地處理控件的事件和操作控件的對象模型,而讓設(shè)計(jì)師另外使用樣式和模板對控件的觀感進(jìn)行精雕細(xì)琢和定制。
出處:Scott Guthrie 博客中文版
責(zé)任編輯:bluehearts
上一頁 使用控件模板定制控件的觀感 [2] 下一頁 使用控件模板定制控件的觀感 [4]
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|