如何在WPF Storyboard完成Seek并在屏幕上绘制时计算出来?

时间:2010-04-21 14:08:43

标签: wpf

我有一个WPF故事板,我想逐帧逐步(对于可变帧速率)。在每一帧,我的目的是故事情节绘制故事板状态的位图。 为此,我尝试使用以下方法:

this.CurrentStoryboard.Begin(this);
this.CurrentStoryboard.Pause(this);
//call a function (SEEKFUNC) which calls the following method for (increasing "frameNumber"s):
this.CurrentStoryboard.Seek(this, TimeSpan.FromSeconds(((double)frameNumber) / c_FrameRate), TimeSeekOrigin.BeginTime);
//wait for drawing to complete at point
SaveFrame(this.saveCanvas);
//call SEEKFUNC with frameNumber++

然而,我正在努力寻找故事板何时完成并被渲染。我可以假设第二次调用CompositionTarget.Rendering会成功完成此操作吗?还有另一种更整洁的方式吗?

1 个答案:

答案 0 :(得分:1)

看看这个:http://blogs.msdn.com/saveenr/archive/2008/09/22/wpf-xaml-saving-an-animation-as-an-avi-video-file.aspx

从该代码看起来,调用UpdateLayout将完成寻找动画。