UWP中运动图形和触摸应用的最佳实践



我们目前正在开发一个使用UWP和XAML(博物馆中的终端(的多点触摸多用户应用程序。显然,该应用程序包含了许多动画和转换,即使用触摸输入、菜单打开动画、触摸旋转等移动用户控件。

为了更好地了解这将是一个什么样的应用程序,以下是一个具有我们目标行为的应用程序的视频(0:16-0:27分钟(:https://www.youtube.com/watch?time_continue=13&v=qIOR9FiL97w


现在我的问题是处理所有这些动画的最佳实践是什么。目前,我们正在使用RenderTransforms来移动UserControls(如触摸移动、触摸旋转等(和菜单动画的Storyboard动画(如打开菜单的动画、关闭动画等(。我们担心的是性能,因为我们在4K上运行它,并且多个用户应该同时使用它。

我最近读到关于Windows.UI.Composition API的文章,但据我所知,这主要是针对按钮按下等时的较小动画,而不是像我们的情况那样更复杂和动态的动画(即菜单可以在屏幕上的某个位置,由translateTransform定义的位置和菜单的背景动画取决于所选菜单项(。

将所有动态内容与情节提要动画相结合可能会很困难,因为我必须在代码中创建情节提要,以使用(部分随机生成的(动态值(如偏移、选定的菜单项等(。有什么更好的解决方案吗?

现在我的问题是处理所有这些动画的最佳实践是什么

组合API是您提到的三个动画中性能最好的,

Windows.UI.CompositionAPI允许您在统一的API层中创建、动画化、转换和操作合成器对象。合成动画为在应用程序UI中运行动画提供了一种强大而高效的方式。它们是从头开始设计的,以确保您的动画以60 FPS的速度独立于UI线程运行,并为您提供灵活性,不仅使用时间,还使用输入和其他属性来驱动动画,从而构建令人惊叹的体验。

它可以实现很多动画,如移动旋转等,它很复杂,这是你可以参考的代码示例。

RenderTransforms用于所有用户控件的移动(如触摸移动、触摸旋转等(和菜单动画的情节提要动画(如菜单的打开动画、关闭动画等(。

虽然RenderTransformsStoryboard动画不是最好的性能,但它们非常易于使用。您可以在xaml中编写它们,并在后面的代码中控制它。有关更多详细信息,请参阅。

最新更新