WPF中的動畫——序

來源:互聯網
上載者:User

WPF中的動畫功能可以讓你非常容易地把動態效果添加到應用程式或者組件中。這也是WPF中最容易被濫用的特性之一。用好了,可以讓我們的軟體受益匪淺。

 

在WPF中,動畫有著明確的定義:隨著時間的推移變化屬性的值。因此,為了達到這一目的,可以幾種方式來實現。

 

一、定時器實現動畫

配置一個定時器,然後依據定時器的頻率迴圈地調用它的回呼函數。在回呼函數中,你可以手工地更新目標的屬性值,直到它的最終值。當然,為了達到這一目的,WPF還提供了一個定時器類——DispatcherTimer類。這種方式可能是大家都熟悉的方式,但並不是推薦的辦法。定時器無法依據顯示器的垂直重新整理率進行同步,也不能與WPF渲染引擎同步。

 

二、Rendering事件

與定時器實現動畫不同,通過為System.Windows.Media.CompositionTarget.Rendering事件添加處理常式,可以實現基於幀的動畫。它不是在定製的時間區間引發,而是在布局後和渲染前的每幀引發。

Rendering事件給出了最好的效能和可定製性。在通常情況下只有當部分UI失效時,WPF才會渲染幀。但是只要Rendering事件上添加了處理常式,WPF就會連續地渲染幀。因此,Rendering對短動畫是最好的選擇。

 

三、動畫類

WPF在System.Windows.Media.Animation命名空間中定義了許多類,它們讓你不需要手工地實現Rendering事件,就可以描述和應用動畫,成為你簡單又得力的幫手。這些類是極其有用的,它們提前告訴你動畫會如何表現。

這些動畫有兩個重要的方面:

1)它們只能改變一個相依性屬性的值。

2)它們使動畫變得“時間解析度無關”。動畫不會在硬體變快時也變得更快,它們只是會變得更平滑。WPF會基於不同的條件改變幀率,作為動畫開發人員,你並不需要關心這一點。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.