Silverlight 3中的Behavior技術(三)

面的介紹中我們可以知道,當我們設計好了ActionBehavior之後,其實不僅是設計師(Designer)可以使用,一般開發人員在撰寫應用程序時,也可以將常用的功能封裝成了ActionBehavior,讓其他開發人員直接套用。

 

我們在這邊看一個簡單的例子,從這個例子當中我們也來看如何設計Action請參考底下這個畫面:

這是一個很典型的簡單輸入畫面,使用者可以在TextBox中輸入文字,但是,當用戶點選TextBox的時候,得先把TextBox中的文字先清空後才能輸入,體貼一點的程序,會在用戶點選該TextBox時,就直接讓該TextBox中的文字變成『選取』狀態,這樣使用者就可以直接輸入了:

 

當然,要達成這樣的功能相當容易,只需要在TextBoxGotFocus事件中撰寫『this.TextBox1.SelectAll();』即可。但是每一個TextBox都要這樣寫,顯然很麻煩,如果可以跟剛纔一樣,把一個對象(Component)直接拖曳到TextBox上,該TextBox就自動具有此功能,豈不挺好?

 

是的,我們緊接着就來看如何設計這樣的Action

 

 

請先建立一個Silverlight項目(當然您也可以在現有的Silverlight項目中直接建立ActionBehavior類別,不過爲ActionBehavior建立一個獨立的項目是比較理想的選擇),該項目請選擇『Silverlight Class Library』即可,接着,請在該項目中建立一個Action類別,當您在項目中選擇Add New Item時,可以找到Blend分類下的Action Template,我們建立一個名稱爲『TextBoxAutoSelectAction』的Action,你會發現建立出來的類別如下:

請將TriggerAction調整成TargetedTriggerAction並將<DependencyObject>改爲< TextBox >。

TargetedTriggerAction是一個泛型類別,其中的<DependencyObject>則可設定爲我們默認的目標對象。例如,我們現在設計的這個TextBoxAction主要的使用對象是TextBox,因此我們可以寫成『TargetedTriggerAction<TextBox>』。而繼承TargetedTriggerAction這個類別必須要實作Invoke方法,Invoke方法是該Action被觸發時,要執行的動作。

 

 

未完,參考第四篇

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