2009-01-11 158 views
3

在WPF 3.5(帶有SP1)中,我只有StackPanel,當我更改屬性Visibility時我想動畫。我不知道這個StackPanel的高度,因爲它的內容決定了它的高度。所以當我將我的StackPanel的屬性更改爲Visible(progressPanel.Visibility = Visibility.Visible;)時,我想看到一個動畫(可能是從0到X的DoubleAnimationUsingKeyFrames)。此外,我有多個StackPanel,我希望看到這種行爲(所以在最好的情況下,我需要一些通用的)。 有沒有人有關於如何做到這一點的想法?當屬性可見性發生變化時動畫一個StackPanel

謝謝!

回答

4

您可以創建和重複觸發動畫自定義的StackPanel的風格時,能見度的變化:

<Style x:Key="MyStyle" TargetType="{x:Type StackPanel}"> 
    <Style.Triggers> 
     <Trigger Property="Visibility" Value="Visible"> 
      <Trigger.EnterActions> 
       <BeginStoryboard> 
        <Storyboard > 
         <DoubleAnimation .../> 
        </Storyboard> 
       </BeginStoryboard> 
      </Trigger.EnterActions> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
2

如果您需要使用垂直增長的動畫擴展效果。如果面板是垂直面板,則在面板的ScaleTransform.ScaleY屬性上執行雙動畫,從0到1。

+0

爲什麼負我:)。當你無法確定stackPanel的實際高度時,最好將ScaleTransform.ScaleX的動畫從0改爲1,這樣做可以實現,試用後再投票。 – 2009-01-11 17:09:48

+0

只需編輯您的帖子,我就可以投票了。 – Martin 2009-01-11 21:12:11

相關問題