【发布时间】:2017-12-05 19:58:08
【问题描述】:
所以我有两个班
A.主窗口
B. 移动对象
1. MainWindow - 调用 MoveObject 类方法在画布上执行情节提要动画。
2。 MoveObjects - 在画布上执行故事板动画。
一切正常。我需要的是,一旦动画显示在画布上,我想在 MainWindow 中调用一个私有的方法。但是,由于它是私有的,我无法从 MoveObjects 调用它,并且在情节提要执行完成后,我无法将控件返回到 MainWindow。
现在,它调用 MoveObjects 类,显示动画但不返回调用类,即 MainWindow。
我怎样才能做到这一点?
我尝试了以下代码 -
bg.DoWork += (s, el) =>
{
Dispatcher.Invoke(new Action(() => {
MoveObjects.AnimateMSU(expectedSKUQuantitiesAtPPS[(int)SKUTypes.Shirts],
expectedSKUQuantitiesAtPPS[(int)SKUTypes.Pants],
expectedSKUQuantitiesAtPPS[(int)SKUTypes.Shoes],
expectedSKUQuantitiesAtPPS[(int)SKUTypes.Hats],
StorageGridAnimationCanvas, "Finish");
}), DispatcherPriority.ContextIdle);
};
bg.RunWorkerCompleted += (s, el) =>
{
//Call a private method of current class
};
bg.RunWorkerAsync();
但是,bg.RunWorkerCompleted 在动画显示在 Canvas 上之前执行。如何让 MainWindow 类等待 MoveObjects 类完全执行?
【问题讨论】:
标签: c# wpf storyboard