0

在 C#+xaml 上编写 Windows 8 应用程序时遇到了一个小问题。我的应用程序有一个主页,它分为两部分——左侧作为导航面板的 ListView 和右侧的 Frame。所有这些看起来和工作起来有点像PC 设置面板。但是有一个区别——当页面到框架有足够的内容并且它是可滚动的时,我执行将导航面板折叠到仅图标状态的动画(当全宽时它有文本和图标)。

所以,这就是问题所在。假设我在第一页并且面板已折叠。然后我转到第二页,我必须回到面板的全宽状态。但由于我是在显示框架内容的同时进行的,所以动画会有一点冻结,当 GridView 有很多项目时,它变得非常明显。所以动画在中途冻结,然后 GridView 渲染所有项目图像,然后继续。

我想出的解决这个问题的唯一方法是在动画完成后进行导航。它看起来不是很漂亮,所以我先进入空白页面,执行动画,然后进入目标页面。但是这个方案还是感觉不对,从暂停恢复后的动画还是有一些问题。

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

4

1 回答 1

1

您可以将页面上的 NavigationCacheMode 设置为必需,并在所有页面中导航以预加载它们,同时使用 Opacity 属性隐藏 Frame,但第一次这样做会很慢。尝试限制需要在每个页面上解码和渲染的位图像素数。如果一切都失败了 - 看看 WinRT XAML 工具包中 AlternativeFrame 控件的 Preload() 方法是否有帮助。

于 2013-04-22T02:50:01.177 回答