设为首页 收藏本站
查看: 665|回复: 0

浅谈ListBox在Windows Phone 7 中的使用(2)

[复制链接]

尚未签到

发表于 2015-5-8 14:43:18 | 显示全部楼层 |阅读模式
  在前篇《浅谈ListBox在Windows Phone 7 中的使用》  中大致介绍了ListBox在Windows Phone 7的用法,今天将继续深究ListBox。主题是ListBox的性能问题。
  我相信,如果大家将自己的Windows Phone 部署到phone 7真机或多或少会遇到性能上的问题,当然这也是模拟器和真实设备区别之一,而这些问题很大程度上是ListBox的渲染以及从web上下载图片造成的。这里有一篇微软WP7团队提供的关于ListBox性能的文章,还是值得大家一看的,里面是微软WP7团队对如何优化windows phone 程序给出的建议。下图是Colin Eberhardt对NoDo做的性能测试,可以发现,ItemsControl可以在更短的时间内提供类似ListBox的功能。
DSC0000.png
  
  我们在真实机上测试的时候,可能会遇到的一个问题就是当我从一个页面跳到另一个页面,而在这个页面中有有一个比较复杂的UI(比如说ListBox中有100条数据,而且ListBox应用的模板相对复杂)。这时候我们的程序感觉像死掉了,界面一动不动。小七很无辜的说道,我还没死,我只是在加载数据和渲染界面,等我弄好了我就活过来了,请耐心等我1分钟。用户能够等1分钟么? 这会给用户带来很不好的体验。国外有研究说全景布局控件(Panorama控件)加载会消耗大约1.6秒!
  当应用程序启动的时候,有启动画面会告知用户程序正在启动,而我们在切换页面的时候,也可以加上类似的效果,告诉用户,请稍等,我正在加载。国外大牛Colin Eberhardt 就提供了一种不错的想法,叫延长加载(DeferredLoadContentControl),以下是两种加载的用户比对图
DSC0001.png
DSC0002.png
  具体的代码可以参考 DeferredLoadContentControl.zip
  如果你的ListBox中的项目比较复杂,建议使用LazyListBox,一种在滑动时使用简单模板,在停止滑动时再换为正常(即复杂UI)的模板,具体的可以参考 http://blogs.msdn.com/b/ptorr/archive/2010/10/12/procrastination-ftw-lazylistbox-should-improve-your-scrolling-performance-and-responsiveness.aspx
  在mango中,windows phone team已经对ListBox做了优化,如果你的ListBox中有图片,它会启用后台线程去处理,如果你已经升到Mango,那么你可以看看ListBox有什么改变,或者你也可以再将LazyListBox替换为ListBox.....
  PS:这篇文章在草稿箱存了一月有余,今天抽了点时间整理发布...

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65048-1-1.html 上篇帖子: 分享Silverlight/WPF/Windows Phone一周学习导读(3月7日-3月12日) 下篇帖子: Windows 7样式地址栏(Address Bar)控件实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表