找出WinRT主题动画的缓动函数

时间:2012-10-29 00:13:35

标签: xaml animation windows-runtime

一个有点奇怪的问题,但无论如何都要找出WinRT XAML主题动画中使用的缓动函数 - 更具体地说,我试图复制EntranceThemeTransition(我不能直接使用)。< / p>

我天真地认为使用类似.NET反射器的东西会有所帮助,但我会收集到我需要实际的源代码而不是.Net Reflector所显示的内容。

任何想法?

2 个答案:

答案 0 :(得分:1)

您可能希望查看MSDN上的AnimationMetrics示例。

有一个AnimationDescription类可以告诉你有关内置动画类型的各种信息,基本上是Windows.UI.Core.AnimationMetrics.AnimationEffect枚举中的任何内容。

例如:

var animationDescription = new AnimationDescription(AnimationEffect.EnterPage, AnimationEffectTarget.Incoming);

var s = new System.Text.StringBuilder();
s.AppendFormat("Stagger delay = {0}ms", animationDescription.StaggerDelay.TotalMilliseconds);
s.AppendLine();
s.AppendFormat("Stagger delay factor = {0}", animationDescription.StaggerDelayFactor);
s.AppendLine();
s.AppendFormat("Delay limit = {0}ms", animationDescription.DelayLimit.TotalMilliseconds);
s.AppendLine();
s.AppendFormat("ZOrder = {0}", animationDescription.ZOrder);
s.AppendLine();
s.AppendLine();
//etc

链接:http://code.msdn.microsoft.com/windowsapps/Animation-metrics-sample-acb0220c

答案 1 :(得分:0)

我相信这些内置动画是以不同的方式实现的,它们独立于常规的Storyboard +子动画运行,因此您需要通过一些测试来比较这些,并将这些测试与您并行运行的常规Storyboard动画进行比较

可视化缓动函数的一种方法是运行主题转换,在一个轴上移动UI元素,同时运行另一个在直线运动中移动元素的垂直轴(不应用缓动函数)。