2013-09-23 35 views
1

我是WinRT和XAML的新手,对动画的使用经验更少。在研究了这个主题之后,我注意到当动画被遍历时,我可以更改故事板目标对象上的一些单独属性。我真的需要用每一帧来改变整个贝塞尔路径点,以产生一个全新的具有随机振幅和控制点的正弦波。每个幅度的高度将是随机的以在给定时间点接近声波,并且动画是随时间变化的声音模式。我所看到的所有例子都是动画,它们沿着贝塞尔路径改变属性,并在每一帧中遍历路径。我需要动画更改每个帧的所有贝塞尔点。我可以在这里使用故事板吗?还是只需要在某种计时器上绘制画布?如何在XAML中的WinRT中创建贝塞尔路径的动画

回答

0

在XAML中没有简单的方法可以做到这一点,对于您的问题,Direct2D等即时模式渲染技术将是更好的选择。我认为XAML中的Path控件不具备实时波形渲染所需的性能特征。

由于您似乎想用Storyboard对其进行设置,因此无论如何您似乎都会考虑预先设定的动画,并且在这种情况下,您可能只需使用此类动画的视频录制。

否则 - 您可以使用CompositionTarget.Rendering事件来使用代码隐藏更新每个帧中的路径。

+0

感谢您的回复。波形转换在随机持续时间后重新创建随机波形,以使外观与旋律有关系,因此我无法使用视频,因为它是静态的。它现在使用定时器和调度程序工作,但是当部署到表面RT时,降级会使其无法使用(它可以在我的笔记本电脑和Surface上正常工作)。屏幕上有四条贝塞尔路径,它们在触摸时启动动画,到Surface-RT触及第四条时,它会慢慢爬行。 – DllyVar100

+0

我放弃了故事板路由,因为没有依赖属性,我可以用它来创建动画而不创建一个属性,我不知道这样做会让我看到很大的改进。我假设会将一些处理移动到渲染线程。我相信它仍然会成为一种依赖性动画,看起来并不理想。它看起来像DirectX编码要求我学习C++,这可能需要一点。对于CompositionTarget.Rendering,它看起来像布局不能改变,但它看起来好像我可以写入画布,对吗? – DllyVar100

+0

我又用了一个刺拳来使用故事板,并在我的用户控件上创建了自己的属性,名为“Frame”,声明为双重希望,我可以使用DoubleAnimation为动画制作5个左右框架动画,以改变振幅以产生振动幻觉。似乎DoubleAnimation忽略我自己的属性,但如果我尝试usercontrols宽度它的工作。是否有一些特殊的方式需要声明属性而不是作为依赖项属性? – DllyVar100