我正在使用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;
答案 0 :(得分:2)
这里的问题是弹出窗口只有2个可见性状态(isopen =true/false
)。当IsOpen
设置为false(即关闭)时,弹出窗口的可见性设置为Collapsed,并且不播放动画。我建议的是:
弹出窗口显然有一个关闭它的关闭按钮,对吧?因此,在该关闭按钮的单击事件中,启动动画。然后在故事板上收听已完成的事件并设置popup.IsOpen=false
那里
sb.Completed += SomeEventHandler