2014-10-04 32 views
2

我正在创建Windows应用商店(目标8.1,WPF和C#),并使用FlipView控件在页面之间进行导航,以获得一些文章缩略图的24张图片。当我的页数很少时,一切都很顺利,很好。但在更多页面的情况下,它有时会滞后,对用户来说不是很舒服。Windows 8.1应用程序中的FlipView呈现问题

还有就是我FlipView声明的一部分:

应该提高性能和渲染速度是 VirtualizingStackPanel.VirtualizationMode,但在我看来,它的行为类似于
<FlipView Name="FlipView" ItemsSource="{Binding ArticlesPages}" 
      VirtualizingStackPanel.VirtualizationMode="Recycling" 
      SelectedIndex="{Binding SelectedPageIndex, Mode=TwoWay}"> 

一件事。

你知道如何提高FlipView的性能吗?我在平板电脑和带有i5处理器和大容量RAM的笔记本电脑上尝试过它,但它仍然不是我想要的。

回答

1

如果你有CPU /内存昂贵的部分是图像/缩略图加载,你可以看看我的FlipViewBehavior - ImageExtensions library。它尚未处于生产就绪状态(尽管它起作用 - 文档几乎不存在atm) - 但我打算很快将它合并到winam xaml工具包中(当清理完时,在〜个月内)。主要思想是:异步加载,停止加载距离当前项目太远的项目,清除内存,处理不可见的项目(在内存中最多保留三个加载的图片) - 在链接中手写CircularQueue以上。我用它在Windows Phone上显示大量过滤图像,效果很好。

VirtualizationPanel肯定让你的虚拟化 - 但它意味着会有一些FlipViewItems容器(例如,如果你有ItemsSource与1000个项目会有例如〜如果回收模式是会被重用10-15 UI容器板启用)。然而,如果你为你的ItemsSource加载任何昂贵的内存资源 - 无论如何它会占用内存。

+0

感谢您的回复。你认为这是由图像加载引起的吗?因为看起来当我转到另一个页面时,图像已经加载。看起来WPF在刷入页面时遇到问题。另一点是我在一页上有24张照片。您的ImageExtensions库是否适合我的情况? – 2014-10-06 17:43:08

+0

如果你能够显示你加载图片的方式,这将是非常好的,所以我可以告诉你更好的帮助。看起来像所有的图像加载页面初始化(低性能)。顺便说一句。你使用WPF还是WinRT? – fex 2014-10-06 18:37:57

+0

我只在服务器上设置图片url路径。这是我的代码,我如何显示图像https://gist.github.com/cechovsky/aadcf97f9f445742608a。但在我看来,加载图片表现良好。我只有在页面之间滑动时才有问题。图片已经加载,但刷卡不顺畅。非常感谢 – 2014-10-06 19:59:04

相关问题