4

我正在寻找一些方法来通过Storyboard. 我已经找到了一些针对 WPF 应用程序的解决方案,但它们在 Windows 应用商店编程的情况下都是无用的,例如:

动画时网格列更改宽度

如何使用情节提要更改wpf中网格行的高度

http://www.codeproject.com/Articles/18379/WPF-Tutorial-Part-2-Writing-a-custom-animation-cla

这样的结果是否可以通过创建自定义类来获得,从 Timeline 继承?如果是这样,应该覆盖哪些组件才能正确实施?

4

2 回答 2

2

下面是为 Grid ColumnDefinition MaxWidth 设置动画的示例方法。

    private void Animate(ColumnDefinition column)
    {
        Storyboard storyboard = new Storyboard();

        Duration duration = new Duration(TimeSpan.FromMilliseconds(500));
        CubicEase ease = new CubicEase { EasingMode = EasingMode.EaseOut };

        DoubleAnimation animation = new DoubleAnimation();
        animation.EasingFunction = ease;
        animation.Duration = duration;
        storyboard.Children.Add(animation);
        animation.From = 1000;
        animation.To = 0;
        animation.EnableDependentAnimation = true;
        Storyboard.SetTarget(animation, column);
        Storyboard.SetTargetProperty(animation, "(ColumnDefinition.MaxWidth)");

        storyboard.Begin();
    }
于 2014-01-06T05:10:28.040 回答
2

您应该能够使用简单的DoubleAnimation. 确保设置为此处EnableDependentAnimation=True的大纲。

尝试时要意识到的一件事ColumnDefinitionsGridLength struct. 您可以在此处找到有关它们的更多信息。您需要让动画设置Value属性。

于 2013-06-23T21:05:40.777 回答