一个有点奇怪的问题,但无论如何要找出 WinRT XAML 主题动画中使用了哪些缓动函数 - 更具体地说,我正在尝试复制 EntranceThemeTransition 的缓动函数(我不能直接使用它)。
我天真地认为使用 .NET Reflector 之类的东西会有所帮助,但我认为我需要实际的源代码而不是 .Net Reflector 显示的内容。
有人有什么想法吗?
一个有点奇怪的问题,但无论如何要找出 WinRT XAML 主题动画中使用了哪些缓动函数 - 更具体地说,我正在尝试复制 EntranceThemeTransition 的缓动函数(我不能直接使用它)。
我天真地认为使用 .NET Reflector 之类的东西会有所帮助,但我认为我需要实际的源代码而不是 .Net Reflector 显示的内容。
有人有什么想法吗?
您可能想查看 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
我相信这些内置动画以不同的方式实现,并且它们独立于常规 Storyboard + 子动画运行,因此您需要通过一些测试来近似这些,这些测试将这些与您并排运行的常规 Storyboard 动画进行比较。
可视化缓动函数的一种方法是运行主题转换,在一个轴上移动 UI 元素,同时运行另一个在垂直轴上以线性运动(未应用缓动函数)移动元素的主题转换。