2013-04-21 89 views
0

在C#+ xaml上编写Windows 8应用程序时遇到了一些小问题。我的应用程序有一个主页,分为两部分 - 左侧的ListView作为导航面板,右侧的Frame。所有这些看起来和工作有点像PC Settings panel。但有一点不同 - 当页面内容足够多并且可以滚动时,我会将折叠导航面板的动画执行为仅限图标状态(全宽时包含文本和图标)。在框架中显示内容干扰页面上的动画

所以,这是问题所在。假设我在第一页并且面板被折叠。然后我转到第二页,我必须返回到面板的全角状态。但是,由于我在显示框架中显示内容的同时进行了这一操作,因此动画会有一点冻结,并且在GridView获得大量项目时它变得非常引人注目。因此,动画冻结一半,然后GridView呈现所有项目图像,然后继续。

解决这个问题的唯一方法就是在动画完成后做导航。它看起来不太漂亮,所以我先进入空白页面,执行动画,然后进入目标页面。但是这个解决方案仍然感觉错误,并且在从暂停恢复后的动画中仍然存在一些问题。

那么,有什么办法可以确保GridView的渲染不会干扰我的动画吗? 谢谢,对不起我的英文。

回答

1

您可以在页面中所需的设定NavigationCacheMode并通过所有页面浏览到预装他们,而隐藏使用Opacity属性的框架,但将是缓慢的你第一次做到这一点。尝试限制您需要在每个页面上解码和呈现的位图像素的数量。如果一切都失败 - 看看WinRT XAML Toolkit的AlternativeFrame控件的Preload()方法是否有帮助。

+0

预加载所有的页面几乎没有解决办法,因为我已经有6个,有一些项目数量很多。我当然会尽我所能减少图片的数量和尺寸,但冻结仍然存在,即使是一个小的。更何况,为未来的这类问题找到正确的解决方案将是一件好事。 我在考虑自己在寻找第三方工具,可能现在是学习其中一些的好时机。 非常感谢您提供具体的建议 - 我听说WinRT XAML Toolkit相当多,可能是一个很好的开始。 – 2013-04-22 09:35:32