常常在實作系統的時候,會為了強調出 RIA中Rich的威力,會希望讓物件被加到畫面上或是被移除的時候能套用一段動畫,來強調這件事的發生,這篇就來看看在Flex中和WPF/Silverlight裡,怎麼分別做到這種效果~
常常在實作系統的時候,會為了強調出 RIA中Rich的威力,會希望讓物件被加到畫面上或是被移除的時候能套用一段動畫,來強調這件事的發生,而在Flex中的物件很親切的提供了addedEffect和removedEffect兩個屬性可以供我們設定,只要針對物件的這兩個屬性加以指定給予某個特效,在新增/移除該物件到某個容器的時候,就會自動播放該動畫,讓我們看看下面的例子:
原始碼如下:
就這麼簡單,很輕鬆就能套用動畫(這是直接針對要被加入/移除的物件加特效的作法,還有另一種是直接針對容器加特效的作法,之後另開其他文章介紹)。
而在WPF和Silverlight要做到類似的效果,該怎麼辦呢?這邊就跟大家分享我自己的因應之道(如果有更高明的技巧也請不吝分享給我喔!!),利用物件的Loaded事件就可以做到加入時就撥放動畫了~但是比較麻煩的是當物件要被移除前也要播動畫,那怎麼辦呢?(絕對不是反過來利用Unloaded事件嘿~)要移除物件時播放動畫,就得動個小手腳了,要反過來先播放動畫,再利用動畫的Completed事件來移除物件才行,請看以下的範例:
來看看WPF的Xaml和程式碼:
程式的部份得注意的是要避免動畫的播放和停止互相干擾,所以在動畫播放完畢之前將畫面先設為IsEnabled = false。
最後一樣附上這次的原始碼,請自行服用: