Silverlight 3中的Behavior技術(二)

OK,說了這麼多,我們還是先來看看該怎麼在開發環境當中使用Behavior技術。當然,就單純的Silverlight開發人員(不管是Designer或是Developer)來說,開發環境安裝好Blend 3是最低的要求,同時當您安裝了Silverlight 3 SDK以及Blend 3 SDKSilverlight 3 Toolkit等套件之後,您可以直接在Blend 3當中建立一個Silverlight應用程序,接着在場景中佈置一個Button和一個TextBlock,並且隨意設計一個動畫。

 

接着,請切換到Assets頁標籤,若您有正確的安裝Blend 3 SDK,您會看到Assets頁卷標下有Behaviors選項,在列出的項目中,你會看到有一個ControlStoryboardAction

  

  

請點選它並拖曳到Button上,然後切換到Object and Timeline頁標籤,您會發現Button控件底下多了個ControlStoryboardAction對象:

 

接着點選該對象,切換到屬性窗口,您接着會發現,可以透過開發環境來設定ControlStoryboardAction對象的屬性(請注意不是Button的屬性,別點錯) 

 

完成之後,請先建置(Build)此應用程序,成功後請接着執行此應用程序,您會發現在不需要寫任何程序代碼的狀況下,當使用者按下Button1(也就是Button1Click事件觸發後)Storyboard動畫就自動被播放了。

 

如果您仔細觀察Action的設定窗口,會發現其實場景中任何控件(不只是Button)的任何事件(不只是Click)都可以做爲特定Action的觸發條件。而每一個Actionr都代表着一種行爲,而程序設計人員(developer)可以設計出各式各樣的Action,讓設計師(Designer)直接使用。

 

TriggerActionBehavior三者之間究竟有何關係呢?

 

從上面的操作中我們可以知道,Action是經過程序設計師封裝好的某種行爲(功能),我們可以把一些常用的代碼段,例如上面用到的『動畫撥放』、或是先前我們提過的『發一封信』、或『將窗體上的數據存入數據庫』等『功能』整理成一個個的Action,而開發人員只需要把Action拖曳到特定的對象上即可使用。

 

當然,拖曳到目標對象上之後,還得要設定這個Action的相關信息,也就是該Action的屬性(如果有的話),以及該Action被觸發的時機,而這就是所謂的Trigger了。

 

Silverlight中,預設的Trigger有底下幾種:

1.      EventTrigger:最常用的觸發器,可選擇在控件的特定事件發生時觸發,例如LoadedMouseLeftButtonDownGotFocus…等。

2.      TimerTrigger:可設定每n毫秒觸發一次,總共要觸發幾次或隨時間持續觸發。

3.      KeyTrigger:可設定在特定按鍵被按下時觸發,可捕捉到鍵盤上的一般按鍵與功能鍵,亦可抓取Ctrl, Alt等組合控制鍵。

4.      StoryboardCompletedTrigger:在特定動畫撥放完畢後觸發。

 

請注意,這些Trigger是配合着Action使用的,你會發現,每一個Action都可以透過Blend設定Trigger,並透過Trigger來觸發執行此Action,如此一來,我們就可以相當靈活的在場景中特定控件的特定事件發生時,來執行特定工作。

 

也就是說,在這個機制下,只要程序設計師預先寫好TriggerActionDesigner就可以在完全不撰寫任何程序代碼的狀況下,來開發出一個Silverlight應用系統或網站。 

 

我們剛纔提到了ActionTrigger,那Behavior?難道Behavior不需要Trigger?其實不是的,應該說,Behavior是內建(包含)Trigger!!!

你會發現當場景中的某一個對象被套用了Behavior之後,不需要設定任何Trigger,該對象就會自動擁有某種功能,就好像我們剛纔介紹了的MouseDragElementBehavior一樣,當該Behavior套用在某個對象上,該對象就直接支持拖曳行爲了,因此,你可以將Behavior直接想象成TrigeerAction的結合。

 

我們先談到這邊,下一篇則要來介紹Action的開發方式...

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章