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的开发方式...

 

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