1

我正在 WinRT 中为 Windows 8 制作程序,但在Popup-class方面遇到了一些问题。

弹出窗口中的内容在打开时具有精美的介绍动画。我想在弹出窗口关闭之前为它的内容制作动画,但还没有找到方法。

有任何想法吗?

提前致谢

编辑:这是我正在尝试做的一个例子。Closed-eventhandler 在关闭之前做任何事情显然为时已晚。但你明白了。

    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;
4

1 回答 1

2

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

弹出窗口显然有一个关闭按钮来关闭它,对吧?所以在那个关闭按钮的点击事件中,开始动画。然后在故事板上收听完成的事件并在popup.IsOpen=false那里设置

sb.Completed += SomeEventHandler
于 2013-06-14T05:59:12.483 回答