首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导航到旋转控件时的Silverlight工具包动画

导航到旋转控件时的Silverlight工具包动画
EN

Stack Overflow用户
提问于 2012-06-25 18:02:00
回答 1查看 529关注 0票数 1

我在我的所有页面中都使用了silverlight工具包动画。它在经典页面、全景页面和关闭轴心时都能正常工作。

但当我导航到枢轴控件时,我经常发现动画根本无法启动,特别是在普通设备上(如HTC Trophy)。在好的手机(如Lumia800)上效果更好,但动画并不是每次都会触发。

是否存在一个已知的旋转控件错误,会延迟初始化并导致动画被取消?我不明白为什么动画如此不稳定,为什么它时不时地工作。例如,在People应用程序中,当您单击联系人时,pivot始终显示动画。我希望能够重现这种行为。

仅供参考,我将此代码放在xaml文件中:

代码语言:javascript
复制
<toolkit:TransitionService.NavigationInTransition>
  <toolkit:NavigationInTransition>
    <toolkit:NavigationInTransition.Backward>
      <toolkit:TurnstileTransition
        Mode="BackwardIn" />
    </toolkit:NavigationInTransition.Backward>
    <toolkit:NavigationInTransition.Forward>
      <toolkit:TurnstileTransition
        Mode="ForwardIn" />
    </toolkit:NavigationInTransition.Forward>
  </toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
<toolkit:TransitionService.NavigationOutTransition>
  <toolkit:NavigationOutTransition>
    <toolkit:NavigationOutTransition.Backward>
      <toolkit:TurnstileTransition
        Mode="BackwardOut" />
    </toolkit:NavigationOutTransition.Backward>
    <toolkit:NavigationOutTransition.Forward>
      <toolkit:TurnstileTransition
        Mode="ForwardOut" />
    </toolkit:NavigationOutTransition.Forward>
  </toolkit:NavigationOutTransition>
</toolkit:TransitionService.NavigationOutTransition>

任何线索都会有帮助。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-29 05:02:02

可能页面的加载太慢了,我会从分析开始,看看执行什么需要最多的时间,并检查内存使用情况。

当动画没有出现时,我会使用一些技巧:

从OnNavigatedTo事件和页面构造函数中删除尽可能多的代码(正如Ashen在comments)

  • Reduce中提到的那样)
  • 减少了布局组件的数量。一种方法是尝试用图像替换尽可能多的布局。您也可以尝试在页面加载后从代码创建组件。(例如,对于此时不可见的透视表项) XAML
  • 如果页面上有一个Bing地图控件,请将其从XAML中移除并从代码中加载它,因为该控件通常会阻止动画显示。(由于加载速度较慢)
  • 确保使用的所有图像都设置为内容,而不是资源(如果可能)。(这将减少初始应用程序加载时间)
  • 删除XAML代码中具有默认值的所有属性,例如,如果您获得了Margin属性,则该属性是不必要的,因为0已经是默认值。删除边距属性将略微提高速度(因为需要解析的XAML较少)。如果你在很多控件上这样做,你可能会在速度上得到一些显着的提高。

最后在App.xaml.cs中将过渡帧的背景设置为透明(也要降低填充速率):

代码语言:javascript
复制
RootFrame = new TransitionFrame() { Background = new SolidColorBrush(Colors.Transparent) };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11187155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档