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

Windows Phone 7实战 第一天 设计启动页面和应用程序图标

[复制链接]

尚未签到

发表于 2015-5-9 14:00:35 | 显示全部楼层 |阅读模式
  每一个 Windows Phone 7 应用程序在启动时多少会花上一些时间,在这个等待的时刻经常都会摆放一些启动画面 (Splash screen) 先来充充场面,以免加载时间过长而导致使用者不耐烦,而在这个启动屏幕里是一个很好的宣传页面,可以把产品的广告,作者介绍在这里显示、品牌信息都显示在这个页面里,当然时间不能太长、也不能太短,否则若这个启动屏幕跑得太快,那就没有出现的必要性了,有时后这种必要的“慢”也是一种艺术。
  首先我们建立一个默认的Silverlight For windows  Phone的项目
DSC0000.png
  我们就是要制作一个二维码生成器应用程序啦,选用芒果应用程序 Windows Phone OS 7.1。
  然后新增一个页面  Windows Phone Portrait Page 页面,并取名为 SplashScreen.xaml, 方法是右击工程,选择Add→New Item→Windows Phone Portait Page,把页面里面的所有界面元素删除,添加一个Image控件到SplashScreen.xaml页面。
  由于 Windows Phone 7 的屏幕大小目前都固定为 480 (宽) x 800 (高),而且我们希望这个启动画面能够占满整个画面,所以我们必须调整 Image 控件的属性,这是通过过拖曳的方式并不精准,直接修改属性会比较快些。
DSC0001.png
  接着准备一张 480 x 800 的图片(注意:不能使用 GIF 格式的图档),在此我的图文件名为 SplashScreen.png 并把它放到一个 Images 目录里 。
DSC0002.png
  然后调整 Image 控件的属性,设置Source 属性到这张图片。我们也可以将 SplashScreen.png 文件的 Build Action 项目属性Embedded Resource 调整为 Content,此举的主要目的是为了降低 WP7 组件的大小,以加快整体应用程序的加载速度。不过修改了文件的项目属性后,你的 Image 控件的 Source 属性也要跟着调整,且必须调整为相对于项目根目录绝对路径,用文字描述比较难懂,看图吧:
DSC0003.png
  我们之所以要做“启动画面”,目的可能有两种:
  
       
  • 因为应用程序需要初始化的时间太长,所以需要先显示一个简单的等待页面。而这也是 Windows Phone Application Certification Requirements 的要求之一(请参见 Technical Certification Requirements 页面的 5.2.1 Launch Time 这一条规则),而这也是学会设计启动画面如此重要的原因之一。   
  • 程序执行的太快,使用者没有 感觉,但要慢也要慢的优雅而从容。
    要让 MainPage.xaml 正式开始执行之前,我们希望能先跳 SplashScreen.xaml 页面出来,我们使用的技巧是透过一个 Popup 窗口挡住 MainPage.xaml 页面,而这个 Popup 窗口里就是包裹着 SplashScreen.xaml 页面,以下是程序的写法:
  
  
  
  
  
  private BackgroundWorker backroungWorker;   
     private Popup myPopup;  
  // Constructor   
      public MainPage()   
      {   
          InitializeComponent();   
          myPopup = new Popup() { IsOpen = true, Child = new SplashScreen() };
  backroungWorker = new BackgroundWorker();   
          RunBackgroundWorker();
  }
  private void RunBackgroundWorker()   
      {   
          backroungWorker.DoWork += ((s, args) =>   
          {   
              Thread.Sleep(3000);   
          });
  backroungWorker.RunWorkerCompleted += ((s, args) =>   
          {   
              this.Dispatcher.BeginInvoke(() =>   
              {   
                  this.myPopup.IsOpen = false;   
              });   
          });
  backroungWorker.RunWorkerAsync();   
      }
  我们让启动画面显示3秒钟,然后自动关闭。F5 就可以看到效果了。
  启动页面做好了,接着我们进行下一项任务就是设置应用程序图标。
  WMAppManifest.xml文件还定义了图标,背景图像和应用程序标题,你可以用PNG位图文件作为图标,默认图标文件是 ApplicationIcon.png,默认背景图像是Backgroud.png,你可以编辑XML代码或在项目属性的“应用程序”标签页修改这些属 性的值。
DSC0004.png
  今天我学到了如何有时后 GUI 接口不见得最方便,有时后手动修改 XAML 或调整属性值比用图形接口来拖曳来的方便。WP7 并不支持 GIF 图档(这是有专利的图形格式),使用时应该避免使用 GIF 图文件,否则看不到图片你还会觉得是 WP7 的 Bug。也学到可以将 SplashScreen.png 图文件的 Build Action 项目属性从 Embedded Resource 调整为 Content,这样可以降低 WP7 组件 (assembly) 的大小,以加快整体应用程序的加载速度。学到了如何正确的使用 Popup 来显示启动画面,并通过 BackgroundWorker 的后台作业来设定固定时间后自动关闭启动画面。最后后面还学习了如何设定应用程序图标和背景图等。

运维网声明 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-65273-1-1.html 上篇帖子: Windows Phone 7(WP7)开发 获取设备信息 下篇帖子: Microsoft Windows Phone 7-欲称霸移动平台需支持Html 5
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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