2010-08-13 53 views
1

問候,每個人。如何使用WriteableBitmap創建簡單的動畫?

我想學習一些Silverlight基礎知識,並決定編寫一個簡單的Mandelbrot集繪圖應用程序出於這個原因。當然,在Silverlight中。 ;)

該應用程序主要完成。我使用WriteableBitmap來處理像素,並在一個空的表單上放置一個簡單的圖像來顯示該位圖(使用Source屬性)。我甚至設法縮放並移動分形。

現在我想通過添加一點點動畫來增添一點點刺激感;我知道我不能進行分形移動,因爲它是一個標量圖形對象,但是例如,當我放大時,如果初始縮放是平滑動畫,那麼應用程序會重新計算新的「放大」鋒利如刀「的形象。同樣,如果我拖動圖像(用於移動分形)並且鼠標離開圖像區域,如果分形平滑返回到初始位置(如現在它只是「快速」返回當初始設置被恢復時)。

我的問題是,我不知道在動畫中控制哪個參數。例如,我使用ScaleTransform進行縮放,但用於在位圖本身上呈現WriteableBitmap,而不是使用圖像對象的transform屬性。我這樣做是因爲當我開始操作圖像屬性時,整個圖像開始在表單中移動,當我寧願它的邊界保持原位時。

我懷疑我可能會嘗試去做一些Silverlight本來不打算做的事情(我已經開始做這件事情錯了),但是如果我可以添加這樣的小動畫,那太好了。因此,任何提示讚賞。

+1

這聽起來很有趣,但如果你的目的是「學習silverlight的基礎知識」,那麼你就遠離了軌道。 – AnthonyWJones 2010-08-13 08:14:28

+0

爲什麼?我不是藝術家,雖然我可以獲得Expression Blend,但我更感興趣的是瞭解Silverlight的內部工作方式,因此需要對代碼本身進行操作。 :] 好的,如果我描述的太古怪了,那怎麼樣:我會如何創建一個框架來限制UI元素的顯示方式?例如:我有一個200x200的圖像,但我只想顯示它的100x100部分而不調整它的大小。我怎麼能這樣做? – Shaamaan 2010-08-16 07:43:52

回答

0

聽起來好像你想使用Silverlight動畫引擎來動畫你自己的自定義屬性,它控制你的圖像顯示,而不是圖像元素或容器。

如果您的用於控制圖像外觀的屬性顯示爲雙重Dependancy Properties,則動畫系統可以使用基本的對象隨着時間的推移平滑地更改您的設置。您甚至可以在Expression Blend中創作動畫。

動畫引擎肯定會給你緩動功能等來消除動作。如果我有更詳細的關於你的對象是如何構造的,我可以更具體,但我希望這有助於。