2009-01-11 85 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

相关问题