Windows runtime 如何在页面的其余部分加载之前保留UI元素的绘图?

Windows runtime 如何在页面的其余部分加载之前保留UI元素的绘图?,windows-runtime,winrt-xaml,windows-phone-8.1,Windows Runtime,Winrt Xaml,Windows Phone 8.1,ListView使我的应用程序的启动时间很长。首先我什么也看不到,然后立刻画出包含所有内容的整个页面。如何在没有ListView(或其所在位置的不确定进度环)的情况下绘制页面,并且仅在绘制ListView之后才开始绘制页面?此外,该应用程序需要能够在加载过程中响应backey按钮。将ListView.Visibility更改为在XAML处折叠,并将加载的页面上的Visibility更改为在页面上可见,没有达到预期效果;只有当我让ListView处于折叠状态时,才能快速加载页面 PS:我认为虚拟化

ListView使我的应用程序的启动时间很长。首先我什么也看不到,然后立刻画出包含所有内容的整个页面。如何在没有ListView(或其所在位置的不确定进度环)的情况下绘制页面,并且仅在绘制ListView之后才开始绘制页面?此外,该应用程序需要能够在加载过程中响应backey按钮。将ListView.Visibility更改为在XAML处折叠,并将加载的页面上的Visibility更改为在页面上可见,没有达到预期效果;只有当我让ListView处于折叠状态时,才能快速加载页面

PS:我认为虚拟化不是这里的问题:因为列表中的17项随时可见;该列表是虚拟化的,但在启动时确实加载了68项中的52项;但同样的,名单也不长


我怀疑ListView的绘制(渲染)速度慢。更有可能的是,正在为
ListView
加载一些位图或其他数据,这会减慢速度。无论如何-如果不查看所有代码或至少不知道您试图在
列表视图中显示的内容,可能很难猜测原因。您可以尝试共享更多的内容,或者只是通过探查器运行应用程序来查看花费的时间-尤其是在UI/dispatcher线程上。@Filip没有图像,只在我的列表上显示文本。好吧,在53个ListViewItems中花费了2个-其中一定有问题。我会在探查器里挖那个树枝。也许所有这些文字都是一本书,每一项都有文字?:)虽然每个列表项或行有六个绑定,但我需要它们能够动态地更新它们。不要考虑绑定来查看是否有帮助。我听说绑定可能会很慢,尽管53个项目并不多,但每个项目6个绑定听起来似乎太多了。看看你能不能限制这个数字。您也不能使用绑定。您可以在项目视图中使用
DataContextChanged
事件,并在该事件上同步模型和视图中的值。您还可以将
列表视图子类化
并覆盖
PrepareContainerForItemOverride
在您的项目被选中之前,您可能不需要所有这些?还要确保绑定访问的任何视图模型属性都不会太慢。