首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight动画开始得太早

问Silverlight动画开始得太早
EN

Stack Overflow用户
提问于 2011-07-27 21:41:58
回答 1查看 98关注 0票数 2

我有一个Silverlight动画:

代码语言:javascript
复制
<Storyboard x:Key="CloseAnimation" x:Name="CloseAnimation" Storyboard.TargetName="nv" Storyboard.TargetProperty="Height">
  <DoubleAnimation x:Name="CloseAnimation1" Duration="0:0:5" From="30" To="0">
  </DoubleAnimation>
</Storyboard>

以及单击按钮时执行的以下代码:

代码语言:javascript
复制
MessageBox.Show("Test");
CloseAnimation.Begin();

我希望动画在CloseAnimation.Begin();行执行时开始,然后在指定的持续时间内持续。但是似乎显示动画的时间是从点击按钮开始测量的。如果MessageBox可见的时间为3秒,则从动画中减去这一时间,只显示剩余的动画。

为什么以及如何防止这种情况发生?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-27 21:49:50

基本上,动画是基于当前帧的时间开始的,而不是实际的时间。

通过延迟动画的开始,使用模式MessageBox,时间从第一帧的开始时间已经过去,并且它执行其通常的追赶/插值。

不要在与模式消息框相同的线程中调用动画Begin()。使用弹出窗口中的按钮来触发动画,而不是使用任何模式对话框。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6845338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档