2010-02-02 44 views
0

我想在兩個面板之間移動內容時創建動畫過渡。我正在獲取詳細記錄的位圖圖像,並將其作爲縮略圖停放在下面的面板中。停靠區域位於頁腳網格中,內容詳細信息位於停靠區域上方的另一個網格中(停靠欄和主要內容區域位於根佈局控件的另一行 - 另一個網格中)。在Silverlight中將孩子從一個面板移動到另一個面板時,如何創建動畫過渡動畫

我試着用ScaleTransform和TranslateTransform實現這個,同時縮小圖像並將其移向頁腳控件。當它移動到頁腳控件中時,即使圖像Canvas.ZIndex屬性設置爲非常高的數字,它也會被剪輯。最後,thumnbail將需要是位於頁腳網格內的StackPanel的子元素。

感謝您的考慮和幫助。

+0

您想通過將一個容器移出另一個容器來創建動畫?那可能嗎? – 2010-02-02 19:05:36

+0

是的,infragistics在他們的web tile查看器示例中具有相同的效果。我想知道他們是如何做到的。我會嘗試使用Canvas作爲網格的子節點,並將要動畫的對象添加到畫布上,爲其設置動畫效果,當動畫完成時,將其更改爲父項。 http://labs.infragistics.com/silverlight/lobsamples/2009.2/ – 2010-02-03 17:48:11

回答

2

我有一個類似的問題(剪輯),我有一個WPF動畫。問題是動畫的所有者需要成爲這兩個容器的父級,以便動畫能夠工作(在我的情況下,我將它製作爲容納容器的實際窗口)。

沒有任何代碼,我看不出這是你的問題,但我想我會把它扔出去。

你可以看到我的代碼,我感動的動畫從一個容器到另一個位置: http://wiassistant.codeplex.com/sourcecontrol/changeset/view/36638?projectName=WIAssistant#924851 (見本文件的底部AnimatePaneBox方法)。這可能會或可能不會對你有用。

+0

您的意思是動畫對象的所有者需要是父容器的父代的子代?在我的例子中,這將是圖像。我可以發佈代碼,但認爲可能很難解釋發生了什麼。 – 2010-02-02 19:26:47

+0

是的。基本上(如果我理解正確的話)動畫的問題已經擴展到擁有它的控件之上。讓所有者可以通過兩個控件來修復這個問題。正如我所說,我把它變成了實際的窗口,這兩個控件都是我想要改變的控件。 – Vaccano 2010-02-03 18:30:08

1

我通過創建一個位於兩個容器頂部的Canvas來完成類似的操作,使用WritableBitmap(如有必要)創建要移動的對象的渲染並將其附加到該Canvas,Animate位圖(平移,縮放,不透明度等等),然後在動畫結尾處彈出新對象。如果您的控件需要移動或調整大小,它可能很脆弱,但在大多數情況下,它是可靠的黑客攻擊。

+0

這個迴應也是正確的,並且在功能上類似於上面的答案,但是因爲他們首先發布,我會給他們複選標記。謝謝你。 – 2010-02-03 20:47:27

+0

不用擔心。樂意效勞。 – Raumornie 2010-02-03 21:31:01

相關問題