WPF中的过渡效果

7
我希望能制作出富有过渡效果的应用程序,这样我就可以通过淡出不需要的部分和淡入需要的部分来在一个窗口中放置更多内容。
但我不知道如何实现这一点,我已经阅读了一些网络教程,但它们很难理解。
也许伟大的Stackoverflow社区可以提供一个简单的方法,让我能够实现这个目标?
我正在使用Expression Blend 3和VS2010 RC进行所有开发,但主要会专注于Blend除了高级编码之外的所有内容。
谢谢

2
这里有一个关于Blend的不错视频,其中包括VSM。 http://channel9.msdn.com/shows/SilverlightTV/Silverlight-TV-12-The-Best-Blend-3-Video-Ever/ - Sergey Aldoukhov
3个回答

8
如果你喜欢Blend(我也是,很好的选择!),我会推荐使用Visual State Manager而不是各种过渡呈现器(在Transitionals、FluidKit、Bag-O-Tricks等中)。VSM在Blend中得到了支持,并且在其中设计转换非常容易。
区别在于过渡呈现器更适合MVVM编程风格——你翻转ViewModel,呈现器自动切换UI,并将动画过程作为副作用。而对于VSM,转换是更主要的目标而不是副作用。

4
哎?你的第二段非常强烈地支持过渡演示文稿,反对VSM,但是你的第一段建议使用VSM而不是过渡演示文稿。这是怎么回事?你是在试图提出矛盾的论点,还是我完全误解了你想表达的意思? - Ray Burns
1
@ray-burns 如果你正在构建一个LOB应用程序,请使用转换Presenter;如果你正在构建游戏,请使用Blend和VSM。当然,这并不是非黑即白的,只是一些指导。MVVM并不是万能的,我会在适当的时候使用代码后台,并且不会感到羞耻 ;) - Sergey Aldoukhov
VSM 看起来很难理解如何进行转换,你能发布一些教程来帮助理解吗?我已经在 YouTube 上看过一个 Honeycomb 教程,但没有帮助到我。 - Sandeep Bansal
在我看来,使用过渡器比使用VSM编写大多数游戏要容易得多,正如你第二段所述的那样。毫无疑问,你的游戏也有一个模型吧?几乎每个游戏都有。无论如何,我赞同推荐使用Blend进行设计。 - Ray Burns
@ray-burns 游戏 ViewModel 通常与 LOB ViewModel 不同,它展示相同的数据但处于不同的状态(这促进了 VSM)。LOB ViewModel 经常为同一区域提供不同的数据,这适用于 TransitionPresenter。当然,您可以根据需要在同一应用程序中使用两种方法。 - Sergey Aldoukhov
我明白你的意思:许多常见的游戏视图模型嵌入了类似于VSM的功能,因此如果您的视图模型符合VSM的模式,您可以将VSM作为视图模型的一部分使用,而不是自己编写代码。 - Ray Burns

5

想要实现这个功能,最简单的方法是使用类似于Transitionals这样的库。它提供了一个内容控件,您只需设置您的内容,当您更改内容(手动或通过数据绑定)时,它会自动执行过渡效果。

如果您想了解其工作原理,建议查看源代码 - 由于它是开源的,您可以完全访问并查看至少一种方法。


嗨,里德,你能举个例子来展示如何使用过渡库吗? 例如:我有一个用户控件和两个子用户控件,我想在一个单独的窗口中处理它们。 谢谢。 - luka

0
您可能还想查看作为 Blend SDK 一部分的过渡效果。您还可以构建自定义 TransitionControl,这里 是一个很好的帖子。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接