设计建议,以便在视图之间快速导航

时间:2011-01-05 16:53:56

标签: windows-phone-7

通常,当View需要大量绑定或某些UI元素(如Bing Map)时,需要加载“while”(如半秒和秒之间)。

我不想在“点击”操作(如点击ListBox上的元素)和导航操作(显示新页面)之间出现延迟。

我不介意逐步显示页面。例如,对于Bing地图,我不介意显示只有标题的黑色页面,稍后会显示地图。

最佳做法是什么?如果我不够清楚,它可以发布样本

编辑:我会暂时打开这个问题,所以其他人可以回答。感谢Matt和Mick提供了很棒的答案。我已经在做一些改进了。主要是在页面加载后绑定我的控件。

2 个答案:

答案 0 :(得分:2)

预计在资源受限的设备上,非平凡的操作至少需要一段时间才能执行。

最常用的最佳做法用于处理此问题是使用动画为用户提供感知效果的印象。这是产品团队在整个CTP和Beta阶段以及Mix 10和Tech Ed 2010的演示中反复推荐的。

页面转换是一种常见的方法。

Kevin Marshall在11月工具包中加入讨论。

WP7 – Page Transitions Sample

在这里,引用工具包中的控件。

Transitions for Windows Phone 7

你可以做一些非常基本的优化,这会让你付出一些努力。

我还要重申Matt关于不加载最初未使用的控件的建议。

如果您决定加倍努力,您可以采取更多措施来优化页面加载。在这方面,这两个帖子值得吸收。

Creating High Performing Silverlight Applications for Windows Phone

WP7 Development Tips Part 1 - Kevin Marshall's Epic Work Blog for Awesome People

如果使用Listbox,也要熟悉Oren Nachman和David Anson的

WP7 Silverlight Perf Demo 1: VirtualizingStackPanel vs. StackPanel as a ListBox ItemsPanel

Keep a low profile LowProfileImageLoader helps the Windows Phone 7 UI thread stay responsive by loading images in the background

Never do today what you can put off till tomorrow DeferredLoadListBox (and StackPanel) help Windows Phone 7 lists scroll smoothly and consistently

并确保图像尺寸针对其显示尺寸进行了优化。

答案 1 :(得分:1)

我的建议/建议:

  • 尽快创建并导航到新页面。

  • 在加载时(如果适用)显示包含占位符内容的页面。

  • 指示页面加载时发生了什么。不确定的进度条(使用this one)是平台上的约定。

  • 如果在加载所有控件之前无法使用该页面,则阻止访问该页面。在整个页面上显示的半透明对象是一种常用技术,不仅可以防止触摸控件,还可以指示它们尚未被触摸。

  • 如果可能/实际设置xaml / code中项目的大小,以防止因项目加载后调整大小而重新布局。

  • 尝试延迟加载最初不在屏幕上的项目,以减少感知的总加载时间。

最后:

  • 优化所有内容以减少加载时间,使应用程序尽可能响应。