Expression Blend实例中文教程(9) - 行为快速入门Behaviors
?
在Blend強(qiáng)大的設(shè)計(jì)功能支持下,設(shè)計(jì)人員和開(kāi)發(fā)人員可以無(wú)代碼實(shí)現(xiàn)Silverlight/WPF動(dòng)畫(huà)效果,例如上文介紹的StoryBoard,就是一個(gè)典型例子,設(shè)計(jì)人員和開(kāi)發(fā)人員僅需提供必要元素,即可實(shí)現(xiàn)簡(jiǎn)單動(dòng)畫(huà)。通常來(lái)說(shuō),在一個(gè)項(xiàng)目中會(huì)經(jīng)常出現(xiàn)重復(fù)的動(dòng)畫(huà)或者相似的動(dòng)畫(huà),如果每次都創(chuàng)建一個(gè)新的StoryBoard,這樣顯著項(xiàng)目代碼十分臃腫,而且有時(shí)還會(huì)影響項(xiàng)目運(yùn)行效率。另外在多個(gè)項(xiàng)目中都會(huì)用到一個(gè)相同的動(dòng)畫(huà)效果,如果能把這個(gè)動(dòng)畫(huà)效果編譯成通用類提供調(diào)用,也就可以達(dá)到事半功倍的效果。為了解決以上問(wèn)題,微軟在Silverlight 3中推出一個(gè)新的特性,叫做Behavior,也稱為行為。本文帶著大家快速學(xué)習(xí)掌握Behavior在Blend中的使用。
在開(kāi)始學(xué)習(xí)前,首先需要了解一下Behaviors(行為)的幾個(gè)關(guān)鍵點(diǎn):
?
(1)Behaviors(行為)是可復(fù)用代碼集合,可以被任何對(duì)象附加使用;
(2)設(shè)計(jì)人員和開(kāi)發(fā)人員可以使用Behaviors(行為)在不用設(shè)計(jì)任何代碼的情況下,添加相關(guān)功能到XAML中;
(3)Behaviors(行為)可以通過(guò)XAML附加到任何對(duì)象元素中,無(wú)需設(shè)計(jì)任何后臺(tái)代碼;
(4)一個(gè)Behaviors(行為)可以被多個(gè)對(duì)象同時(shí)調(diào)用;
?
快速了解Behaviors(行為)概念
Behaviors(行為),我們可以簡(jiǎn)單的理解為用戶交互通用類,或者一個(gè)Usercontrol,使用“行為”主要是為了簡(jiǎn)化設(shè)計(jì)人員和開(kāi)發(fā)人員的工作,提供一種可重復(fù)使用的用戶交互代碼。創(chuàng)建成功后,一旦發(fā)布,即可在Blend中使用拖拽操作將該行為應(yīng)用到不同項(xiàng)目中。記得曾經(jīng)有網(wǎng)友問(wèn)過(guò),Behavior(行為)從哪里聲明調(diào)用?其命名空間在哪里? 前文我們提及過(guò),Behaviors(行為)是Silverlight 3的新功能,是為了提供可復(fù)用用戶界面代碼,而這些代碼的調(diào)用被集成到Expression Blend視圖設(shè)計(jì)中,也就是說(shuō)Blend是當(dāng)前最簡(jiǎn)單調(diào)用Behaviors(行為)的設(shè)計(jì)工具,于是微軟將Behaviors(行為)類庫(kù)封裝到Expression Blend 3中和Expression Blend 3 SDK中,安裝以上工具成功后,就可以獲得Behaviors(行為)支持。在Blend 3安裝成功后,可以在c:\Programe Files\Microsoft SDKs\Expression\Blend 3\Interactivity\Libraries\Silverlight中發(fā)現(xiàn)兩個(gè)DLL文件,分別是:
System.Windows.Interactivity.dll,該鏈接庫(kù)定義了Behaviors(行為)基礎(chǔ)類,有了該鏈接庫(kù)支持,即可支持Behaviors(行為);
Microsoft.Expression.Interactions.dll,該鏈接庫(kù)提供了一些擴(kuò)展行為類庫(kù),以及一些Action和Trigger類,作為演示實(shí)例;
?
Behaviors(行為)的構(gòu)成
Behaviors(行為)是由三個(gè)基礎(chǔ)類構(gòu)成的,Trigger(觸發(fā)器),Action(行動(dòng))和Behavior(行為),被統(tǒng)稱Behaviors(行為)。在Silverlight項(xiàng)目設(shè)計(jì)中,暫時(shí)沒(méi)有工具支持視圖設(shè)計(jì)Trigger(觸發(fā)器)和Action(行動(dòng)),所以,設(shè)計(jì)和使用這兩個(gè)類,只能手動(dòng)輸入代碼。從上圖可以看出Trigger(觸發(fā)器)和Action(行動(dòng))的使用,通常來(lái)說(shuō)當(dāng)用戶進(jìn)行相關(guān)操作的時(shí)候,會(huì)調(diào)用對(duì)應(yīng)Action,這時(shí)觸發(fā)器會(huì)被激活。由于本系列主要介紹Blend的相關(guān)應(yīng)用,這里對(duì)于Trigger(觸發(fā)器)和Action(行動(dòng))的代碼設(shè)計(jì)不再進(jìn)行詳細(xì)說(shuō)明。
?
Behaviors(行為)在Blend中的使用
我將以上文StoryBoard動(dòng)畫(huà)例程為基礎(chǔ),對(duì)Behavior調(diào)用進(jìn)行演示。
?
首先打開(kāi)StoryBoardDemo項(xiàng)目,
?
在左邊項(xiàng)目欄中,選擇"Assets“選項(xiàng),如果沒(méi)有該選項(xiàng),可以到菜單"Window“中,選擇顯示"Assets”,這時(shí)會(huì)在Assets中列出,項(xiàng)目,控件,樣式,行為等選項(xiàng);
?
?
選中“Behaviors”,會(huì)看到一些現(xiàn)成的Behavior類庫(kù),當(dāng)把鼠標(biāo)放在類庫(kù)名上,會(huì)彈出提示框,說(shuō)明該Behaviors(行為)的功能。這里僅列出了八個(gè)Behaviors(行為),在Expression官方網(wǎng)站還有更多免費(fèi)的Behavior(行為)大家可以自行下載使用。點(diǎn)擊圖中“Expression Gallery”或者訪問(wèn)這里。
?
ChangePropertyAction,該Behaviors屬于Microsoft.Expression.Interactions.dll中的Action類,利用反射改變屬性值;
GoToStateAction,該Behaviors屬于Microsoft.Expression.Interactions.dll中的Action類,將一個(gè)控件轉(zhuǎn)換到指定Visual State;
HyperlinkAction,該Behaviors屬于Microsoft.Expression.Interactions.dll中的Action類,導(dǎo)航切換到指定頁(yè)面鏈接;
RemoveElementAction,該Behaviors屬于Microsoft.Expression.Interactions.dll中的Action類,從UI界面移除一個(gè)控件;
PlaySoundAction,該Behaviors屬于Microsoft.Expression.Interactions.dll中的Action類,播放音樂(lè);
ControlStoryBoardAction,該Behaviors屬于Microsoft.Expression.Interactions.dll中的Action類,控制動(dòng)畫(huà)開(kāi)始,停止,暫停,恢復(fù)等;
MouseDragElementBehavior,該Behaviors屬于Microsoft.Expression.Interactions.dll中的Behavior類,允許用戶在頁(yè)面內(nèi)拖拽控件;
FluidMoveBehavior,該Behaviors屬于Microsoft.Expression.Interactions.dll中的Behavior類,使用平滑的動(dòng)畫(huà)效果顯示指定控件隨著布局的改變而改變;
?
我們選中任意一項(xiàng)進(jìn)行演示,例如PlaySoundAction,
首先添加一個(gè)按鈕到主設(shè)計(jì)頁(yè)面,方便激活行為。
?
從左邊Assets菜單中,選中“PlaySoundAction”,將其拖拽到播放音樂(lè)按鈕上,
?
?
隨后,查看“object and Timeline”窗口,在button控件下,會(huì)顯示一個(gè)“PlaySoundAction”選項(xiàng),
?
選中“PlaySoundAction”選項(xiàng)后,看右邊Properties屬性框,會(huì)顯示激活的Trigger”觸發(fā)器和“Common Properties”屬性
?
Trigger選項(xiàng)中,SourceName是指激活該行為的控件名稱,因?yàn)槲覀兦懊鎸⑿袨橥献У桨粹obutton上,所以這里控件名為button,EventName是激活行為的事件,默認(rèn)的按鈕事件為Click點(diǎn)擊事件。
也可以根據(jù)控件的不同,選擇以上不同的事件進(jìn)行行為激活。
?
在通用屬性中,Source是這要播放的音樂(lè)路徑,Volume是指音量。這里沒(méi)有特殊的解釋。而最后IsEnabled,是指該行為是否可用,默認(rèn)為可用狀態(tài)。
?
這樣,我們可以F5編譯,運(yùn)行后,點(diǎn)擊“播放音樂(lè)”按鈕,即可聽(tīng)到設(shè)置的音樂(lè)。
?
Behaviors(行為)快速入門(mén),暫時(shí)寫(xiě)到這里。大家可以嘗試根據(jù)以上步驟使用不同Behaviors,在以后的文章高級(jí)系列中,將介紹如何創(chuàng)建自定義Behaviors(行為)。
歡迎各位加入專注Silverlight技術(shù)QQ群:超級(jí)群37891947,22308706,100844510 一起討論學(xué)習(xí)Silverlight技術(shù)。
轉(zhuǎn)載于:https://www.cnblogs.com/jv9/archive/2010/04/03/1703554.html
總結(jié)
以上是生活随笔為你收集整理的Expression Blend实例中文教程(9) - 行为快速入门Behaviors的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DNS区域类型
- 下一篇: 甲亢学生能读艺术类院校吗