Windows Phone 7 - 工程结构

openkk 12年前
     <p>像学习Android 一样也必须先把Windows Phone 7的工程结构了解清楚才好,Windows Phone 7的项目结构以一个最标准的WP7应用为例,截图如下:<br /> <br /> <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/356816089ed2206ab006f4de0020c8b6.png" width="282" height="286" /><br /> <br /> 把其中一些对应的文件展开如下:<br /> <br /> <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/a9289470fd830c377e5703f4e70e9b19.png" width="276" height="519" /><br /> <br /> 下面一起来了解一下对应文件的作用和用法。<br />  </p>    <h2>1.Properties</h2>    <ul>     <li>AppManifest.xml<br /> 翻译成中文为应用列表,当我们的WP应用开发完成后,会打包并发布,而此文件的作用是把我们需要布署和发布的所有文件列表列出来,这个跟Android 的Manifest 是不大相同的,Android 的manifest 虽然也可以理解成列表,但Andriod 必须自己手动添加需要的应用权限、服务、广播等。而这个文件最好是不要动它为好。文件内容如下:<br /> <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/675f8c952b454d5f56b0b8d4eb7f88f6.png" width="539" height="140" /><br /> </li>     <li>AssemblyInfo.cs<br /> 做过Winform 或者 Asp.net 肯定对这个不陌生,这里不做过多介绍。<br />  </li>     <li>WMAppManifest.xml<br /> 看名称,好像是跟Windows Mobile 有一点关系 ,此文件包含了Windows Phone 7 的一些特殊属性,可以定义它的可用能力,让它支持比如游戏服务、本地化、网络链接、浏览器等功能,还可以定义应用程序的图片等。文件内容如下:<img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/c999c27b7275a5df21376247f3624d20.png" width="920" height="515" /><br /> Tip:此文件不要改动。 其中Tasks是设置应用启动的第一个页面,跟Android 的?manifest?Launcher 差不多。<br /> </li>    </ul>    <h2>2.References</h2>    <p>此文件为引用目录,默认引用Windows Phone 开发框架DLL,还可以引入我们做好的类库文件等,增强项目的功能扩展。</p>    <h2>3.图片文件</h2>    <ul>     <li>ApplicationIcon.png<br /> 这个图片是主页面列表需要的图标,默认如下:<br /> <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/f41c51519817777ccbdded57187522de.png" width="62" height="62" /><br />  </li>     <li>Background.png<br /> 这个图片是应用程序的背景图,默认如下:<br /> <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/6117a7960bd5f2f5b86397ffdc7aa3a7.png" width="173" height="173" /><br />  </li>     <li>SplashScreenImage.jpg<br /> 这个图片是程序第一次启动前启动,默认如下:<br /> <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/4c5d32e40ff0d1cd26d1a103f83f7c12.jpg" width="480" height="800" /><br /> </li>    </ul>    <h2>4.App.xaml<br /> <br /> 这个文件主要是管理应用程序的生命周期,内容如下:<br /> <br /> <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/10c8e052b67296606cf6940a31deb00d.png" width="602" height="307" /><br /> <br /> 其中Application.ApplicationLifetimeObjects 标签内定义了应用程序的启动过程(Launching)、程序的关闭过程(Closing)、程序的重新激活(Activated)、失去激活 (Deactivated),定义了这些生命周期事件后,我们可以在Code behind 里面找到相应的事件入口,打开App.xaml.cs文件,可以看到如下事件:<br /> <br /> <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/14b62c560e05769b2fde928e16115a9c.png" width="583" height="368" /><br /> <br /> 相对于Android 的多任务生命周期,Windows Phone 7单任务的生命来得更简单些,不过看园子里面有牛人己经看出微软明年可能发布带多任务的和复制/粘贴等功能的版本,很给力呀。呵呵。暂时的单任务只能在这 个生命周期处理文件中处理了,比如应用的切换我们可以在生命周期里面及时的保存一些必要的数据,不致于丢失。<br /> </h2>    <h2>5.MainPage.xaml</h2>    <br /> 此文件为程序的主入口页,打开设计视图,Windows Phone 7默认为我们编写了一个小页面,截图如下:    <br />    <br />    <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/d1e07f0564935be652b83a74b2852fab.png" width="742" height="565" />    <br />    <br /> 而XAML文件其实是一个标准的XML文件,也是应用程序的UI文件,而这里我们要着重了解的是XAML的名字空间。截图如下:    <br />    <br />    <img alt="Windows Phone 7 - 工程结构" src="https://simg.open-open.com/show/e2676e5c7fab0f1c16e2b7cae10a3044.png" width="577" height="159" />    <br />    <ul>     <br />     <li>xmlns 默认的空间,如果在UI里面控件没有前缀则代表它属于默认的名字空间。例如,mainPages 里面的Grid? 标签。<br />  </li>     <li>xmlns:x代表专属的名字空间,比如一个控件里面有一个属性叫name? 那么 x:name 则代表这个name 代表xaml的名字空间。<br />  </li>     <li>xmlns:phone 包含在Miscroft.phone? 的引用DLL<br />  </li>     <li>xmlns:shell 包含在Miscroft.sell的引用DLL,此文件可以帮助我们管理就用的生命周期。<br />  </li>     <li>xmlns:d 呈现一些设计时的数据,而应用真正运行起来时会帮我们忽略掉这些运行时的数据,比如下文件的d:DesignWidth="480" d:DesignHeight="768"然后在如下的名字空间会忽略掉这些数据。<br />  </li>     <li>xmlns:mc 布局的兼容性,这里主要配合xmlns:d 使用,它包含Ignorable属性,可以在运行时忽略掉这些设计时的数据。<br />  </li>    </ul>    <br /> 上面的所有即是一个标准的WP 7 的工程结构,慢慢来吧,从无到有的过程。