属性可见性更改时为StackPanel设置动画

时间:2009-01-11 08:03:35

标签: .net wpf .net-3.5 c#-3.0

在WPF 3.5(带SP1)中,当我更改属性Visibility 时,我只想设置 StackPanel动画。我不知道这个StackPanel的高度,因为它的内容决定了它的高度。因此,当我将StackPanel的属性更改为Visible(progressPanel.Visibility = Visibility.Visible;)时,我希望看到一个动画(可能是从0到X的DoubleAnimationUsingKeyFrames)。

此外,我有多个StackPanel,我希望看到这种行为(所以在最好的情况下,我需要一些通用的东西)。 有人知道如何做到这一点吗?

谢谢!

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:2)

如果您需要使用垂直增长的动画来扩展效果。如果面板是垂直面板,则在面板的ScaleTransform.ScaleY属性上执行从0到1的双动画。