Анимировать StackPanel при изменении свойства Visibility - PullRequest
3 голосов
/ 11 января 2009

В WPF 3.5 (с пакетом обновления 1) у меня просто StackPanel, который я хотел бы анимировать при изменении свойства Visibility . Я понятия не имею о высоте этой StackPanel, поскольку ее содержимое определяет ее высоту. Поэтому, когда я изменяю свойство моей StackPanel на Visible (progressPanel.Visibility = Visibility.Visible;), я хотел бы видеть анимацию (вероятно, DoubleAnimationUsingKeyFrames от 0 до X).

Более того, у меня есть несколько StackPanel, которые я хотел бы видеть с таким поведением (поэтому в лучшем случае мне нужно что-то общее). Кто-нибудь знает, как это сделать?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 11 января 2009

Вы можете создавать и повторно использовать собственный стиль 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 голосов
/ 11 января 2009

Если вам нужен расширяющийся вид эффекта с анимацией, которая растет вертикально. Выполните двойную анимацию для свойства ScaleTransform.ScaleY панели от 0 до 1, если это вертикальная панель.

...