2009-01-26 89 views
0

我想学习WPF的动画,我目前由不少东西迷惑:WPF新手问题

我用像处理,在这里你有一个简单的方法,它是N每分钟次调用,其中n工具是帧率。

在WPF中执行动画的方法是修改属性。如果我使用DoubleAnimation,那么随着动画的进行,双倍增加。但这不完全是我想要的。我希望在每个循环中增加一些属性,一些是随机修改的,一些是通过用户交互进行修改的。我怎样才能在WPF中做到这一点?

什么也令我困惑的事实是,WPF支持多个动画在同一时间。这个怎么用?是否有每个动画的线程或只有一个动画的线程。

前段时间我用c#用gdi。我甚至可以使用多个线程进行绘制;据我记得我只需要插入一些队列中的所有绘图命令,然后窗口照顾他们..我不知道如何处理WPF。

回答

3

在基本级别上,WPF动画与其他任何类型的动画一样:在内部定时器打勾并修改某些属性,这些属性在绘制到屏幕时会导致画面不同。

WPF会为您做所有的腿部工作,以便能够指定相对于挂钟时间的动画,例如“将框以每秒3毫米向左移动”。对于更复杂的场景,您可能需要编写自己的动画,请参阅MSDN上的Custom Animation Overview文章。

关于线程,WPF的工作方式与GDI相同:有一个Thread可处理与WPF模型的所有交互,如果您正在此线程上运行,则只能与WPF控件交谈。如果您是免费的线程,您可以使用Dispatcher将代码“发送”至此线程。对DirectX的实际绘制是在单独的线程中完成的,但这对API的临时用户来说并不重要。

+0

我认为自定义动画是我正在寻找.. thx的快速回答! – Nils 2009-01-26 13:40:28

0

通过将它们放入StoryBoard中,您可以同时运行多个动画。

您可以使用动画的BeginTime来获取一个接一个的动画。

您可以使用关键帧版本(DoubleAnimationUsingKeyFrames)或路径版本(DoubleAnimationUsingPath)来创建复杂的非线性动画。