【发布时间】: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“已完成”活动吗?
-
由于有多个故事板动画(每个正在扩展的树视图项目一个),我不确定我会知道最后一个何时完成。
-
所以只需在故事板开始事件中增加一个计数器,并在完成事件上减少计数器,如果减少后计数器为零,则所有动画都已完成。