在Windows应用商店应用中通过故事板动画更改网格列/行的宽度/高度

时间:2013-06-23 20:36:51

标签: grid storyboard windows-store-apps timeline

我正在寻找一些方法来通过Storyboard中定义的动画更改网格列的宽度(或行的高度)。我已经找到了一些WPF应用程序的解决方案,但是在Windows Store编程的情况下它们都没用,例如:

Grid Column changing Width when animating

how to change the height of a grid row in wpf using storyboard

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

通过创建继承自时间轴的自定义类,可以获得此类结果吗?如果是这样,哪些组件应该被覆盖以便正确实施?

2 个答案:

答案 0 :(得分:2)

您应该可以使用简单的DoubleAnimation。请务必将EnableDependentAnimation=True设置为大纲here

尝试解决问题时要注意的一点是ColumnDefinitionsGridLength struct。您可以在here找到有关它们的更多信息。您需要将动画设置为Value属性。

答案 1 :(得分: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();
    }