首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

如何才能触发 storyboard.Complete 事件

2012-09-07 
怎么才能触发 storyboard.Complete 事件?界面上有个按钮 button1 和内容标签 label1。我想在点击 button1

怎么才能触发 storyboard.Complete 事件?
界面上有个按钮 button1 和内容标签 label1。我想在点击 button1 以后,让 label1 消失。动画执行完毕后,再执行别的东西。代码如下:

C# code
private void button1_Click(object sender, RoutedEventArgs e){    Storyboard story = new Storyboard();    DoubleAnimation d = new DoubleAnimation(1, 0, TimeSpan.FromMilliseconds(1000));    story.Children.Add(d);                this.RegisterName("label1", label1);    Storyboard.SetTargetProperty(d, new PropertyPath(FrameworkElement.OpacityProperty));    Storyboard.SetTargetName(d, "label1");    story.Begin(this, true);    story.Completed += new EventHandler(d_Completed);}void d_Completed(object sender, EventArgs e){    MessageBox.Show("事情做完了!");}


这段代码,动画可以正常运行,但就是进不去 d_Complete 事件里,请问为什么呢?

[解决办法]
把代码顺序调整 一下:
Storyboard story = new Storyboard();
story.Completed += new EventHandler(d_Completed);
DoubleAnimation d = new DoubleAnimation(1, 0, TimeSpan.FromMilliseconds(1000));
story.Children.Add(d);

this.RegisterName("label1", label1);

Storyboard.SetTargetProperty(d, new PropertyPath(FrameworkElement.OpacityProperty));
Storyboard.SetTargetName(d, "label1");
story.Begin(this, true);



原因很简单,你动画都开始执行了,执行都完了,才订阅动画完成事件,有用吗
[解决办法]
你先注册Completed事件,然后在story.Begin()

热点排行