上篇我们了解了WP8的环境搭建,从今天开始,我们就正式进入WP8的设计,开发阶段。

一. 项目模板介绍

打开vs,选择Windows Phone的项目模板,我们发现如下有很多模板,那么我们就从认识这些模板开始。

可以看到vs中共提供了11个项目模板。

Windows Phone 应用

此模板可用作任何应用的起点。模板内容很简单,一个单页面。

Windows Phone 数据绑定应用

此模板可创建使用MVVM设计模式来绑定导航跟列表页的wp应用程序。关于MVVM,很多人之前都应该有了一定的了解,wpf中应用的比较多,后面我们也会做详细的介绍。

Windows Phone 类库

用于创建 Windows Phone 类库的项目。类库这玩意就不用多说了。

Windows Phone Panorama 应用

用于创建使用 Panorama 控件的 Windows Phone 应用程序的项目。可是Panorama是啥, 有啥特别的呢?Panorama 控件是一个长的水平画布,延伸超出单个屏幕。我们一般都称之为全景控件。这么说可能不太好理解,我贴个图出来,大家一看就知道了,在wp7上早就看烂的玩意。

应该能看出点感觉来了,其实按我自己的说法就是一个整个几屏宽的大背景,在展示的时候,一个只能看到一屏的大小,通过左右滑动来查看整个背景。

Windows Phone Pivot 应用

用于创建使用 Pivot 控件的 Windows Phone 应用程序的项目。Pivot跟Panorama在之前的wp7中运用的还是比较多的。也贴个图片看看Pivot是啥玩意:

其实依我看那,就是个选项卡而已。左右滑动切换。

Windows Phone XAML 和 Direct3D 应用

用于创建具有本机组件的 Windows Phone 托管的应用程序的项目。这个是在wp8中新增的模板,主要用于制作3D动画之类的。

Windows Phone XAML 和 XNA 应用

用于创建使用 XNA Framework 呈现图形的wp应用程序。这是在wp7中就有的功能,wp8并没有对其进行更新,所以该模板只能创建面向 Windows Phone OS 7.1 的项目,不能创建面向 Windows Phone OS 8.0 的项目。

Windows Phone HTML5 应用

用于创建主要使用 HTML 内容的 Windows Phone 应用程序的项目。wp8也可以用html,js来写吗?别被他吓到了,目前还没支持,这个模板中其实只是放置了一个WebBrowser控件,一切的js,html5都是在WebBrowser上来做的。

Windows Phone 音频播放代理

用于创建播放音频的后台代理的类库项目。包含一个AudioPlayerAgent类文件。可以在其他 Windows Phone 应用中使用此类库。可用于wp后台播放音乐使用。

Windows Phone 音频流代理

同样是用于创建播放音频的后台代理的类库项目。

Windows Phone 计划任务代理

用于创建执行定期或资源密集型任务的后台代理的类库项目。用于wp中进行后台多任务处理的类库。

二:创建应用程序

今天我们就从最简单的开始,创建一个简单的Windows Phone应用程序。

创建完项目之后,可以发现第一个应用程序由如下几个部分组成:

MainPage:应用程序的主页面。可以在图中看到主页面中xaml文件中有很大的一段类似xml的东东,这个是xaml,有着很多的命名

空间,这些我们将在下一章对XAML进行详细的讲解。还可以看到Grid,TextBlock之类的控件,这些我们同样会在后面

进行专门的介绍。

App:是控制着整个应用程序的全局文件,也是整个程序的入口,Application的概念

Resources-AppResources.resx:应用程序的资源文件,可用于处理程序本地化。

LocalizedString:提供对字符串资源的访问权。也是用于本地化的。

Assets文件夹:资源文件夹,一般可约定用于放置图片,音频文件之类的。

WMAppManifrst.xml:应用程序相关的元数据清单。关于wp8的清单文件,我打算另开一章做详细的说明。

AppManifest.xml 也是必备的程序清单,目前有啥具体作用我还不是很了解。应用程序部件的相关信息。我再整整,到时候跟清单文

件一起介绍。

三:Hello WP8!

文章不能拖得太长,长了重点就不突出了,剩下的我们后面细细分解。回到本文的主线来,我们要写一个"Hello WP8!”的小程序!

在Grid中放入一个Button,我们可以通过控件拖拉,也可以通过xaml来编写。xaml代码如下:

  1. <!--ContentPanel - 在此处放置其他内容-->
  2. <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
  3. <Button Background="Red" x:Name="Btn1" Click="Btn1_Click_1">土豪,先跟我做朋友,就狂击我吧!</Button>
  4. </Grid>

然后在后台给Button的click事件加上处理程序。

  1. private void Btn1_Click_1(object sender, RoutedEventArgs e)
  2. {
  3. MessageBox.Show("Hello WP8!我们做朋友吧!");
  4. }

我们看看效果是什么样子的。在模拟器中,点击进入我们开发的应用,看到好大一个红色的按钮,我们点击一下,弹框弹出提示。

虽然没啥含量,但这第一个小程序就可以算是完成了哈。你是不是以为我会很俗的,在界面上写个“Hello WP8!”,然后跑起来,就算完成任务了哈。那你就错了,那不错土豪的作风!

这一篇写的比较水哈,大家凑合看看,最近有点忙,后面我会注意保质保量!

让我们下一章“windows phone 8 开发系列(三)程序清单说明与配置!”再见。

windows phone 8 开发系列(二)Hello Wp8!的更多相关文章

  1. windows phone 8 开发系列(三)程序清单说明与配置

    一 清单文件内容介绍 当我们先建了一个项目之后,我们可以看到vs自动会为我们创建了很多文件,正常人都会先一个个去翻看下每个文件都是干啥的,都主要写了些啥,在这些文件中,在Properies目录下面,我 ...

  2. Windows下USB磁盘开发系列二:枚举系统中所有USB设备

    上篇 <Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>介绍了很简单的获取系统U盘盘符的办法,现在介绍下如何枚举系统中所有USB设备(不光是U盘). 主要调用的API如下: 1 ...

  3. windows phone 8 开发系列(一)环境搭建

    一:前奏说明 本人一名普通的neter,对新玩意有点小兴趣,之前wp7出来的时候,折腾学习过点wp7开发,后来也没怎么用到(主要对微软抛弃wp7的行为比较不爽),现在wp8已经出来一段时间了,市场上也 ...

  4. BizTalk开发系列(二十八) MSMQ 适配器

    MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...

  5. WordPress版微信小程序开发系列(二):安装使用问答

    自WordPress版微信小程序发布开源以来,受关注的程度超过我原来的想象.这套程序主要面对的用户是wordpress网站的站长,如果wordpress站想在微信的生态圈得到推广,小程序成为一种重要的 ...

  6. 微信小程序开发系列二:微信小程序的视图设计

    大家如果跟着我第一篇文章 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 一起动手,那么微信小程序的开发环境一定搭好了.效果就是能把该小程序的体验版以二维码的方式发送给其他朋友使用. 这个系列 ...

  7. BizTalk开发系列(二十二) 开发自定义Map Functoid

    尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...

  8. 【Qt编程】基于Qt的词典开发系列<二>--本地词典的设计

    我设计的词典不仅可以实现在线查单词,而且一个重大特色就是具有丰富的本地词典库:我默认加入了八个类型的词典,如下所示: 由于是本人是通信专业,因此加入了华为通信词典.电子工程词典,又由于我喜爱编程,也加 ...

  9. Windows phone 应用开发系列教程(更新中)

    Windows phone 应用开发[1]-Text To Speech        作为开篇章节.第一篇将在如下介绍一些Windows phone比较有意思的东西-Text To Speech[文 ...

随机推荐

  1. windows下查看某个端口被哪个程序占用的方法

    经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用 假如我们需要确定谁占用了我们的9050端口 ...

  2. archlinux下wifi-menu显示连接超时

    /etc/network.d/wlan0 增加: DHCP_TIMEOUT=30

  3. 遍历List remove方法,雨露均沾

    /** * 要求:去掉List中为 0 的元素 */ //创建数组和空List Integer[] ars = {1,0,0,0,5,0,8,9,0,0,0,65,3,0,0}; List<In ...

  4. flume+kafka+storm

    centos06.6+JDK1.7 flume1.4+kafka2.10+storm0.9.3 zookeeper3.4.6 集群: 192.168.80.133 x01 192.168.80.134 ...

  5. [SQLServer]学习总结笔记(基本涵盖Sql的所有操作)

    --################################################################################### /* 缩写: DDL(Dat ...

  6. 【Android 界面效果24】Intent和PendingIntent的区别

    intent英文意思是意图,pending表示即将发生或来临的事情.  PendingIntent这个类用于处理即将发生的事情.比如在通知Notification中用于跳转页面,但不是马上跳转. In ...

  7. Android小项目之十 应用程序更新的签名问题

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  8. 【谷歌市场安装】Google Play 闪退问题解决

    Google Play 安装后闪退,是因为手机没有内置GMS(Google Mobile Service) 框架. 由于谷歌退出了中国市场,国产手机很多都没有内置GMS, 导致Google Play ...

  9. sgu 185 最短路建网络流

    题目:给出一个图,从图中找出两条最短路,使得边不重复. 分析:既然是最短路,那么,两条路径上的所有节点的入边(s,x).出边(x,e)必定是最优的,即 dis[x] = dis[s]+edge_dis ...

  10. GetImage

    check路径是是否有效,网络访问地址.notfound查找不到,httpstatuscode枚举数较多,根据自己想要的设置就好了. public bool checkValid(string pat ...