Toolkit导航转换有时不起作用
本文关键字:不起作用 转换 导航 Toolkit | 更新日期: 2023-09-27 18:20:55
我正在尝试使用Microsoft Phone Controls Toolkit中的导航转换。通过在应用程序资源中定义样式,我将它与大多数关于该主题的博客文章中的默认实现一起使用:
<Style x:Key="ReaderTransitionPageStyle"
TargetType="phone:PhoneApplicationPage">
<Setter Property="toolkit:TransitionService.NavigationInTransition">
<Setter.Value>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:SlideTransition Mode="SlideDownFadeIn" />
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:SlideTransition Mode="SlideUpFadeIn" />
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</Setter.Value>
</Setter>
<Setter Property="toolkit:TransitionService.NavigationOutTransition">
<Setter.Value>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:SlideTransition Mode="SlideDownFadeOut" />
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:SlideTransition Mode="SlideUpFadeOut" />
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</Setter.Value>
</Setter>
</Style>
然后将此样式应用于我的页面。
然而,转换很少起作用。有时它们工作正常,有时则不然。即使我在同两个页面之间来回导航,有时它会正确地设置动画,有时根本不会,页面会立即弹出。即使在工作时,动画也不是流动的,而是相当缓慢的。
是否有任何常见的原因会减缓工具包提供的转换?我不应该在目标页面的OnNavigatedTo中进行任何长时间的处理吗?
有没有其他技术可以制作页面过渡动画,或者唯一的其他解决方案是使用自定义故事板?
更新:我一直在用HTC Mozart开发,今天我试着用我的一款同事的Lumia 800,它好多了,可能是因为它的硬件更强。然而,我今天将尝试直接使用情节提要。
更新:直接使用故事板没有帮助,动画仍然不一致和断断续续。
我认为原因可能是复杂的布局和导航到或加载页面时的大量处理。你可以通过让页面变得相当简单来检查它,避免任何加载或处理-如果你仍然没有看到动画-那么我不知道发生了什么。如果情况好转,你需要进行perf。将大多数处理延迟到过渡动画完成,将所有可能的内容转移到异步调用/后台线程处理。请参阅:
http://blogs.msdn.com/b/slmperf/archive/2011/06/13/off-thread-decoding-of-images-on-mango-how-it-impacts-you-application.aspx
使用BackgroundWorker,注意同步,节约CPU使用。