天天看點

使用WPF動畫程式設計的幾點注意事項[轉]

1.       在frameworkelement.triggers中啟動動畫的幾點備注:

·         此triggers集合中隻支援eventtrigger,使用其他類型的trigger将會加載失敗。

·         eventtrigger.sourcename指定的元素必須在目前的eventtrigger所應用的元素的邏輯子樹内。如果eventtrigger應用于自身元素,則不需要制定sourcename屬性。

·         當對一個依賴屬性應用了動畫後,再對該屬性指派需要特别注意timeline.fillbehavior的值。如果timeline.fillbehavior==holdend,那麼在代碼中對該屬性進行指派是沒有效果的。該屬性将會一直持有動畫賦予的值。原因是動畫指派有較高的優先級。可以設定fillbehavior為stop或者在該屬性上清除動畫來解決此問題:

     btn.beginanimation(button.opacityproperty, null);

2.       關于啟動動畫的兩種方式的幾點備注,啟動動畫有兩種方式:

·         一種是使用uielement.beginanimation方法。該方法會啟動參數所制定的動畫來animate自身的某個依賴屬性。非常簡單,但是該方法隻能啟動一個動畫。

·         另一種是使用storyboard.begin方法。該方法可以一次啟動多個動畫,隻要這些動畫包含在storyboard裡面。而且其中包含每個timeline都需要用storyboard.settargetname和storyboard.settargetproperty來制定目标元素和目标屬性。需要特别注意的一個缺點是:storyboard中包含的所有timeline的target都必須是frameworkelement或者frameworkcontentelement的派生類的對象。否則該動畫不會有任何效果。這是由于propertypath類造成的,因為在settargetproperty的時候需要提供一個propertypath的一個構造,而propertypath被限制與引用從frameworkelement或者frameworkcontentelement的路徑,這是propertypath用在target mode的限制。

歡迎加群互相學習,共同進步。qq群:ios: 58099570 | android: 330987132 | go:217696290 | python:336880185 | 做人要厚道,轉載請注明出處!http://www.cnblogs.com/sunshine-anycall/archive/2012/04/17/2453622.html