資源描述:
《UI前沿技術(shù)-Silverlight 4中的流暢UI》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、?2010MicrosoftCorporation.Allrightsreserved.UI前沿技術(shù)術(shù)術(shù)Silverlight4中的流暢UICharlesPetzold下下下載載載代代代碼碼碼示例[http://code.msdn.microsoft.com/mag201007UIFrontiers.aspx]“流暢UI”這個詞最近常被用來形容一種UI設(shè)計(jì)技術(shù),這種技術(shù)能夠避免讓可視化對象突然進(jìn)入視野或者從一個位置跳到另一個位置。流暢的可視化對象在進(jìn)入視野和變換位置時更加優(yōu)雅,有時就像從霧中浮現(xiàn)或者滑入視野。我在本專欄的前兩篇文章中介紹過一些您自己實(shí)
2、現(xiàn)流暢UI的技術(shù),當(dāng)時的部分靈感就來源于Silverlight4中即將推出的流暢UI功能?,F(xiàn)在,Silverlight4已經(jīng)正式發(fā)布,本文就為您介紹其功能。Silverlight4中流暢UI的使用范圍很窄,只用于加載和卸載ListBox中的項(xiàng),但是卻能給我們一些重要的啟發(fā),告訴我們?nèi)绾卧谧约旱膶?shí)現(xiàn)中擴(kuò)展流暢UI技術(shù)。ExpressionBlend4中具備更多的流暢UI行為。模板和VSM如果您不知道新的流暢UI功能究竟在Silverlight4的什么地方,您可能需要花幾個小時去尋找。它不是類;不是屬性;不是方法;也不是事件。實(shí)際上,它是ListBoxI
3、tem類上的三個新的視覺狀態(tài)。圖圖圖圖1顯示了這個類的文檔,其中的TemplateVisualState屬性項(xiàng)進(jìn)行了微調(diào),以符合組的名稱。圖1ListBoxItem類類類文類文文文檔檔檔檔復(fù)制代碼[TemplateVisualStateAttribute(Name="Normal",GroupName="CommonStates")][TemplateVisualStateAttribute(Name="MouseOver",GroupName="CommonStates")][TemplateVisualStateAttribute(Name="D
4、isabled",GroupName="CommonStates")][TemplateVisualStateAttribute(Name="Unselected",GroupName="SelectionStates")][TemplateVisualStateAttribute(Name="Selected",GroupName="SelectionStates")][TemplateVisualStateAttribute(Name="SelectedUnfocused",GroupName="SelectionStates")][Templa
5、teVisualStateAttribute(Name="Unfocused",GroupName="FocusStates")][TemplateVisualStateAttribute(Name="Focused",GroupName="FocusStates")][TemplateVisualStateAttribute(Name="BeforeLoaded",GroupName="LayoutStates")][TemplateVisualStateAttribute(Name="AfterLoaded",GroupName="LayoutS
6、tates")][TemplateVisualStateAttribute(Name="BeforeUnloaded",GroupName="LayoutStates")]publicclassListBoxItem:ContentControl視覺狀態(tài)管理器(VSM)是Silverlight中最重要的更改之一,它改編自WindowsPresentationFoundation。在WPF中,樣式或模板(幾乎總是用XAML定義)可以包含名為觸發(fā)器的元素。這些觸發(fā)器被定義為檢測屬性更改或檢測事件,然后啟動一段動畫或更改另一個屬性。例如,一個控件的樣式定義
7、可以包含一個針對IsMouseOver屬性的觸發(fā)器,當(dāng)該屬性為True時,觸發(fā)器將控件的背景設(shè)置為藍(lán)色畫筆。也可以定義針對MouseEnter和MouseLeave事件的觸發(fā)器,當(dāng)這些事件發(fā)生時可以啟動幾段簡短的動畫。在Silverlight中,大部分觸發(fā)器都被棄用,取而代之的是VSM。這么做的部分原因是希望提供更加結(jié)構(gòu)化的方法,以便在運(yùn)行時動態(tài)更改控件的特征;還有部分原因是避免在定義多個觸發(fā)器后,處理各種可能的組合。VSM被認(rèn)為是對觸發(fā)器的極大改進(jìn),因此包含在Microsoft.NETFramework4的WPF中。您從圖圖圖圖1可以看到,List
8、BoxItem控件支持11種視覺狀態(tài),這些狀態(tài)被分為四組。在每一組中,任意時刻只能有一種視覺狀態(tài)是活動的。這