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