.net - 当属性 Visibility 更改时为 StackPanel 设置动画

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

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

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

谢谢!

最佳答案

您可以创建和重用在可见性更改时触发动画的自定义 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>

关于.net - 当属性 Visibility 更改时为 StackPanel 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/432550/

相关文章:

c# - 限制跨 WCF 服务的请求数

asp.net - session变量清除方法只会清除当前浏览器session吗?

wpf - 当监视器设置设置为 "Show Desktop Only On 1"时,访问 WPF 中的第二个监视器

c# - 从 C# 中的存储过程捕获错误

.net - C# 中是否有 Sizzle/jQuery 选择器实现?

c# - 将小数小时添加到时间跨度

c# - LINQ 语句在被包装到扩展方法后不再有效

c# - map 列表 <> 与 Automapper?

c# - WPF:截图并保存

wpf - OpenGL:更多的顶点,更慢的性能