关闭前动画弹出窗口

时间:2013-03-20 08:29:36

标签: c# animation popup windows-runtime

我正在使用WinRT为Windows 8制作一个程序,我在使用Popup-class时遇到了一些问题。

弹出窗口中的内容在打开时会有一个奇特的介绍动画。我想在关闭之前在弹出窗口中为内容设置动画,但还没有找到方法。

有什么想法吗?

提前致谢

编辑:这是我正在尝试做的一个例子。关闭事件处理程序显然为时已晚,无法在关闭之前做任何事情。但你明白了。

    Popup popup = new Popup();

    SolidColorBrush brush = new SolidColorBrush(Colors.Red);
    Ellipse ell = new Ellipse() { Fill = brush, Width = 300, Height = 300 };
    popup.Child = ell;

    popup.Opened += (sender, e) =>
    {
        ColorAnimation anim = new ColorAnimation() { To = Colors.Blue };
        Storyboard.SetTarget(anim, brush);
        Storyboard.SetTargetProperty(anim, "Color");

        Storyboard sb = new Storyboard();
        sb.Children.Add(anim);

        sb.Begin();
    };
    popup.Closed += (sender, e) =>
    {
        ColorAnimation anim = new ColorAnimation() { To = Colors.Green };
        Storyboard.SetTarget(anim, brush);
        Storyboard.SetTargetProperty(anim, "Color");

        Storyboard sb = new Storyboard();
        sb.Children.Add(anim);

        sb.Begin();
    };

    popup.IsOpen = true;

1 个答案:

答案 0 :(得分:2)

这里的问题是弹出窗口只有2个可见性状态(isopen =true/false)。当IsOpen设置为false(即关闭)时,弹出窗口的可见性设置为Collapsed,并且不播放动画。我建议的是:

弹出窗口显然有一个关闭它的关闭按钮,对吧?因此,在该关闭按钮的单击事件中,启动动画。然后在故事板上收听已完成的事件并设置popup.IsOpen=false那里

sb.Completed += SomeEventHandler