Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 故事板/平行时间线中WPF动画的部分更新,但没有新的开始()?_C#_.net_Wpf_Animation - Fatal编程技术网

C# 故事板/平行时间线中WPF动画的部分更新,但没有新的开始()?

C# 故事板/平行时间线中WPF动画的部分更新,但没有新的开始()?,c#,.net,wpf,animation,C#,.net,Wpf,Animation,我正在开发一个WPF应用程序,它可以显示许多图形元素(矩形几何体和样条曲线),这些图形元素的动画与MediaElement中显示的视频同步 同步树的构造如下所示: 情节提要(用于控制:开始()、暂停()、搜索()…) MediaTimeline(使用Storyboard.SetTargetName()连接到MediaElement) ParallelTimeline0(细分为ParallelTimeline以简化对象管理) 关键帧动画0(为某些图形元素设置动画) 关键帧动画1(为其他图形元

我正在开发一个WPF应用程序,它可以显示许多图形元素(矩形几何体和样条曲线),这些图形元素的动画与MediaElement中显示的视频同步

同步树的构造如下所示:

  • 情节提要(用于控制:开始()、暂停()、搜索()…)
    • MediaTimeline(使用Storyboard.SetTargetName()连接到MediaElement)
    • ParallelTimeline0(细分为ParallelTimeline以简化对象管理)
      • 关键帧动画0(为某些图形元素设置动画)
      • 关键帧动画1(为其他图形元素设置动画)
    • 。。。(可能有更多的平行时间线…)
由于显示和动画元素的动态特性,所有这些都是在代码中构造和管理的,即没有XAML。设置和播放、搜索等都非常好

然而,我面临的问题如下

动画元素可以随时更新(例如,动画关键帧被更新、添加、删除等),而视频仍在显示,尽管可能处于暂停状态。简单地更新原始动画没有任何效果,因为所有动画的冻结副本(可冻结)显然是在情节提要播放期间使用的(查看源代码,当分配时钟并将动画应用于依赖项属性时,这种冻结似乎发生在Begin()方法中)。我已经尝试使我的动画不可冻结(CanFreeze==false),但这只会导致异常而不播放任何内容

是否有办法只更新一些动画(例如,仅ParallelTimeline0和子动画),而不强制重置整个故事板,也不中断与原始MediaTimeline的同步或强制重新加载MediaTimeline(这涉及重新加载和重新查找相关媒体,并造成重大延迟)