2010-07-16 43 views

回答

1

您可以創建兩個動畫故事板(一個用於展開,另一個用於摺疊),動畫顯示堆疊面板的寬度,然後在StackPanel_VisibilityChanged上運行相應的動畫。

+0

你有一個例子,動畫的StackPanel的當前寬度?我看到的所有例子都是基於固定寬度的。 – Brandon 2010-07-16 18:55:53

+0

我記得做了這樣一段時間,雖然我最終擺脫它,並以不同的方式爲我的窗口設置動畫,所以我沒有代碼(切換到從0到100%的ScaleAnimation)。我認爲故事板的DoubleAnimation「From」綁定到StackPanel.RenderWidth,「To」設置爲0.動畫存在於資源中,而不是風格,並且通過調用Storyboard動畫=(Storyboard)this.FindResource 「STORYBOARDNAME」); animation.Begin();來自後面的代碼。 – Rachel 2010-07-16 19:17:37

+0

如果這不起作用,請嘗試對RenderTransform進行動畫處理(ScaleTransform.ScaleX)。這就是我目前使用的。我認爲如果你沒有設置CenterPoint,它會生成動畫,所以效果將與展開效果相同。 – Rachel 2010-07-16 19:19:24

0

我建議使用Width屬性而不是ScaleX進行動畫處理。否則整個控件(StackPanel)會看起來像它的動畫一樣被搗碎/拉伸。