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

《101 Windows Phone 7 Apps》读书笔记-Alphabet Flashcards

[复制链接]

尚未签到

发表于 2015-5-9 13:15:52 | 显示全部楼层 |阅读模式
  课程内容
  Ø 幻灯片效果的切换
    
      最近有人问我如何来写一个幻灯片的应用程序,在这个应用程序中,他们可以在不同的页面之间切换,就像在Pictures hub或者Facebook应用程序中浏览一个图片集一样。我仔细思考后发现,当前并没有可用的panel或者其他UI元素来实现这种交互的效果。一个简单的scroll viewer并不行,因为我们需要每个图片具有“魔力”,而且所有剩余的图片视图不能处于不对齐的位置。
      虽然Pivot和Panorama控件要比这个任务的需求更具特色,但是它们提供了最简单的方法来创建这种交互模式。我们只需要隐藏title 和 header,对布局做一些调整就可以了。由于具备LoadingPivotItem和UnloadingPivotItem事件,Pivot控件更加适合记录的动态加载/卸载;但是,Panorama使得我们可以用切换的方式来浏览前一张或后一张图片,因此,它更加适合模仿幻灯片的效果。
      因此,Alphabet Flashcards应用程序采用Panorama控件来提供26个字母中每个卡片的幻灯片浏览效果。父母可以使用这个应用程序来教孩子认识英文字母。
      注意,不要在Panorama中放置太多的记录!
      Panorama的设计初衷并不是用来放置太多的记录。对于本应用程序的27个记录来说,性能还可以接受。但是如果加入更多更复杂的记录,会导致应用程序的性能明显下降,并且占用更多的内存。
    
  The User Interface
  
      Alphabet Flashcards使用了27个Panorama Item的Panorama控件:一个用来作为标题页面,另外26个页面用来展示26个英文字母。图28.1显示了从第一个页面(标题)切换到第二个页面(字母A)的用户体验。
  
DSC0000.png

图28.1 从第一个Panorama页面切换到第二个页面的效果

  
      为了获得全屏幻灯片的效果,本页面的Panorama和它的Item并不使用任何Title和Header。Item还利用负的页面上边距来占用那些浪费的空间。控件右边的48像素空间由以下两个部分组成:页边距占用12像素,下一个页面中左边部分的内容占用36像素。因为我们不想在本应用程序中加入预览的功能,所以只要确保每个页面中的内容有36像素宽度的左边距。本应用程序在用户切换图片之前,不仅需要将下一个页面的内容缓冲,而且要把内容进行居中布局。但是,在横屏模式下,它确实强制内容的最大宽度为384(480 - 48×2)。图28.2清楚地展示了这种情景,它将Panorama的背景设置为橙色,第一个页面的背景为绿色,第二个为蓝色,第三个为紫色。
  
DSC0001.png

图28.2 页面切换中Panorama的背景

  
  
      如果我们想要在边距上留较小的空间,可以将Panorama的边距设置为“0,0,-48,0”。如果我们想要进一步丰富Panorama的外观,可以给Panorama应用一个新的风格,并且给Panorama Item一个经过调整的控件模板。
  
      注意:
  ?我们并不是在XAML布局中加入27个Panorama Item,而是在使用代码将Panorama 的ItemsSource设置为一组图片的URI字符串。Panorama使用Item模板把每个图片嵌入到Grid中去,为了得到如图28.1所示的效果,需要留出一些页边距。
  ?Panorama包含的东西要比PanoramaItem更多,例如本应用程序中使用的字符串,而每个Item的主要内容和Header用来显示记录的详细信息。因此,应用程序明确将每个Item的HeaderTemplate设置为空,这样就可以避免text block中使用的每个URI显示在每个图片的上方。
  ? 本应用程序中使用的图片,其Build Action属性设置为Resource,使得Panorama控件和背景图片在程序运行时同时加载。
    
  The Code-Behind
      除了为Panorama填充Item以外,cs代码还为应用程序保存并恢复用户已选择的Item,使得应用程序可以恢复它之前的状态。
      这里,DefaultItem用得恰当好处。在本应用程序中,将不再受到前一章所讨论的DefaultItem问题的困扰,因为这里没有明显的Panorama标题或者是背景。

运维网声明 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.iyunv.com/thread-65249-1-1.html 上篇帖子: WINDOWS 7 配置驱动开发环境(wdk7.60) 下篇帖子: 小技巧:在 Windows 7 的 IIS 7.5 中 运行 WCF 服务 404 错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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