WPF新手问题

时间:2009-01-26 13:26:41

标签: wpf

我正在尝试学习WPF动画,目前我很困惑:

我使用了像处理这样的工具,你有一个简单的方法,每分钟调用n次,其中n是帧速率。

在WPF中进行动画制作的方法是修改属性。如果我使用例如DoubleAnimation,那么随着动画的进行双倍增加。但这不是我想要的。我想在每个周期中增加一些属性,一些属性随机修改,一些属性通过用户交互修改。我怎么能在WPF中做到这一点?

令我困惑的是,WPF同时支持多个动画。这是如何运作的?每个动画都有一个主题,或者所有动画都有一个主题。

前段时间我用g#和c#。我甚至可以使用多个线程进行绘图;据我所知,我只需要在一些队列中插入所有绘图命令,然后windows就会处理它们。我不知道如何用WPF处理它。

2 个答案:

答案 0 :(得分:3)

在基本级别上,WPF动画与任何其他类型的动画都是一样的:内部定时器滴答,一些属性被修改,当绘制到屏幕时会导致不同的图片。

WPF为你做了所有的工作,能够指定相对于挂钟时间的动画,例如“将该框移动到每秒3毫米左侧”。对于更复杂的场景,您可能希望编写自己的动画代码,请参阅MSDN上的Custom Animation Overview文章。

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

答案 1 :(得分:0)

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

您可以使用动画的BeginTime让一个动画从一个接一个开始。

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