当前位置: 首页 > news >正文

Windows Phone 7 不温不火学习之《工程结构》

像学习Android 一样也必须先把Windows Phone 7的工程结构了解清楚才好,Windows Phone 7的项目结构以一个最标准的WP7应用为例,截图如下:

把其中一些对应的文件展开如下:

下面一起来了解一下对应文件的作用和用法。

1.Properties

  • AppManifest.xml
    翻译成中文为应用列表,当我们的WP应用开发完成后,会打包并发布,而此文件的作用是把我们需要布署和发布的所有文件列表列出来,这个跟Android 的Manifest 是不大相同的,Android 的manifest 虽然也可以理解成列表,但Andriod 必须自己手动添加需要的应用权限、服务、广播等。而这个文件最好是不要动它为好。文件内容如下:
  • AssemblyInfo.cs
    做过Winform 或者 Asp.net 肯定对这个不陌生,这里不做过多介绍。
  • WMAppManifest.xml
    看名称,好像是跟Windows Mobile 有一点关系 ,此文件包含了Windows Phone 7 的一些特殊属性,可以定义它的可用能力,让它支持比如游戏服务、本地化、网络链接、浏览器等功能,还可以定义应用程序的图片等。文件内容如下:
    Tip:此文件不要改动。 其中Tasks是设置应用启动的第一个页面,跟Android 的manifestLauncher 差不多。

2.References

此文件为引用目录,默认引用Windows Phone 开发框架DLL,还可以引入我们做好的类库文件等,增强项目的功能扩展。

3.图片文件

  • ApplicationIcon.png
    这个图片是主页面列表需要的图标,默认如下:
  • Background.png
    这个图片是应用程序的背景图,默认如下:
  • SplashScreenImage.jpg
    这个图片是程序第一次启动前启动,默认如下:




4.App.xaml

这个文件主要是管理应用程序的生命周期,内容如下:



其中Application.ApplicationLifetimeObjects 标签内定义了应用程序的启动过程(Launching)、程序的关闭过程(Closing)、程序的重新激活(Activated)、失去激活(Deactivated),定义了这些生命周期事件后,我们可以在Code behind 里面找到相应的事件入口,打开App.xaml.cs文件,可以看到如下事件:

相对于Android 的多任务生命周期,Windows Phone 7单任务的生命来得更简单些,不过看园子里面有牛人己经看出微软明年可能发布带多任务的和复制/粘贴等功能的版本,很给力呀。呵呵。暂时的单任务只能在这个生命周期处理文件中处理了,比如应用的切换我们可以在生命周期里面及时的保存一些必要的数据,不致于丢失。

5.MainPage.xaml

此文件为程序的主入口页,打开设计视图,Windows Phone 7默认为我们编写了一个小页面,截图如下:

而XAML文件其实是一个标准的XML文件,也是应用程序的UI文件,而这里我们要着重了解的是XAML的名字空间。截图如下:

  • xmlns 默认的空间,如果在UI里面控件没有前缀则代表它属于默认的名字空间。例如,mainPages 里面的Grid 标签。
  • xmlns:x代表专属的名字空间,比如一个控件里面有一个属性叫name 那么 x:name 则代表这个name 代表xaml的名字空间。
  • xmlns:phone 包含在Miscroft.phone 的引用DLL
  • xmlns:shell 包含在Miscroft.sell的引用DLL,此文件可以帮助我们管理就用的生命周期。
  • xmlns:d 呈现一些设计时的数据,而应用真正运行起来时会帮我们忽略掉这些运行时的数据,比如下文件的d:DesignWidth="480" d:DesignHeight="768"然后在如下的名字空间会忽略掉这些数据。
  • xmlns:mc 布局的兼容性,这里主要配合xmlns:d 使用,它包含Ignorable属性,可以在运行时忽略掉这些设计时的数据。

上面的所有即是一个标准的WP 7 的工程结构,慢慢来吧,从无到有的过程。

相关文章:

  • iOS面试题6.30总结
  • Winows Phone 7 不温不火学习之《音乐播放示例》
  • centos7安装eclipse
  • Windows Phone7 不温不火学习之《应用程序生命周期》
  • 你好,React setState
  • fastreport 如何 设置 richview 的 行高
  • Windows Phone 7 不温不火学习之《页面导航》
  • 我的ipad应用备份
  • 我又回来了
  • windows向ubuntu过渡之常用软件安装
  • java.util.ConcurrentModificationException 异常
  • windows和linux的协议栈驱动
  • vmware的vmnet-概念的解说
  • typeScript.webpackreact的正确版quickStart
  • vmware的vmnet-感官和视觉上的效果
  • 【RocksDB】TransactionDB源码分析
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • crontab执行失败的多种原因
  • Git同步原始仓库到Fork仓库中
  • java概述
  • Js基础知识(一) - 变量
  • JS专题之继承
  • maya建模与骨骼动画快速实现人工鱼
  • Vue.js 移动端适配之 vw 解决方案
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 编写高质量JavaScript代码之并发
  • 关于 Cirru Editor 存储格式
  • 好的网址,关于.net 4.0 ,vs 2010
  • 计算机常识 - 收藏集 - 掘金
  • 聚簇索引和非聚簇索引
  • 你真的知道 == 和 equals 的区别吗?
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端之Sass/Scss实战笔记
  • 在Mac OS X上安装 Ruby运行环境
  • 正则表达式小结
  • No resource identifier found for attribute,RxJava之zip操作符
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #预处理和函数的对比以及条件编译
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (3)选择元素——(17)练习(Exercises)
  • (Python) SOAP Web Service (HTTP POST)
  • (vue)页面文件上传获取:action地址
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)程序员技术练级攻略
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .Net IOC框架入门之一 Unity