wpf 动画执行的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 动画执行的问题相关的知识,希望对你有一定的参考价值。
写了一个小程序,其中想实现的一个功能是,是点击一个按钮后,放一段动画,等动画结整后再打开一个新窗口,可现在令我头痛的,动画一播放,程序就执行打开新窗口的动作了。请不要告诉我使用Storyboard的Completed事件,因为这段动画其他地方还要用,我不能每播放一下就打开新窗口
参考技术A 不知道有什么好的方法如果这个动画要一直用的话就每次的begin的时候Sleep一下动画的时候(写死的时间) 咳 暂时的 参考技术B 建议: 3.编辑数组公式本回答被提问者采纳
WPF动画:检测是不是有任何动画正在进行中?
【中文标题】WPF动画:检测是不是有任何动画正在进行中?【英文标题】:WPF Animation: Detect if any animation is in process?WPF动画:检测是否有任何动画正在进行中? 【发布时间】:2011-03-24 17:47:40 【问题描述】:有没有一种快速的方法来确定 WPF 控件中的任何动画是否正在处理。
我有一个树视图,我在其中动画树节点的扩展,我想等到所有这些动画都完成后再将焦点项目滚动到视图中。我不想单独跟踪我所有故事板的进度。
理想情况下,我的伪代码如下所示:
myTreeView.ExpandAll(); // I have written this part
while (myTreeView.IsAnimating()) // I need the 'IsAnimating' property or extension method
// wait
selectedTreeviewItem.BringIntoView(); // I have written this too.
【问题讨论】:
您尝试过 StoryBoard“已完成”活动吗? 由于有多个故事板动画(每个正在扩展的树视图项目一个),我不确定我会知道最后一个何时完成。 所以只需在故事板开始事件中增加一个计数器,并在完成事件上减少计数器,如果减少后计数器为零,则所有动画都已完成。 【参考方案1】:为什么不使用情节提要的completed event?您将不得不使用事件或其他线程,否则您将使用 while 语句阻塞 UI 线程,并且不会播放任何动画。
【讨论】:
这就是我要避免的,因为我同时触发了 1 和 x 动画之间的任何地方......不过,这是我正在考虑的一个后备选项。 嗯,你的答案基本上就是它。我缺少的是在 myTreeView 的静态构造函数中使用 EventManager.RegisterClassHandler(...,Storyboard.CompletedEvent,...) 以便我可以观看所有动画完成。以上是关于wpf 动画执行的问题的主要内容,如果未能解决你的问题,请参考以下文章