windows phone 8 开发系列(二)Hello Wp8!
上篇我们了解了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代码如下:
<!--ContentPanel - 在此处放置其他内容-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button Background="Red" x:Name="Btn1" Click="Btn1_Click_1">土豪,先跟我做朋友,就狂击我吧!</Button>
</Grid>
然后在后台给Button的click事件加上处理程序。
private void Btn1_Click_1(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello WP8!我们做朋友吧!");
}
我们看看效果是什么样子的。在模拟器中,点击进入我们开发的应用,看到好大一个红色的按钮,我们点击一下,弹框弹出提示。



虽然没啥含量,但这第一个小程序就可以算是完成了哈。你是不是以为我会很俗的,在界面上写个“Hello WP8!”,然后跑起来,就算完成任务了哈。那你就错了,那不错土豪的作风!
这一篇写的比较水哈,大家凑合看看,最近有点忙,后面我会注意保质保量!
让我们下一章“windows phone 8 开发系列(三)程序清单说明与配置!”再见。
windows phone 8 开发系列(二)Hello Wp8!的更多相关文章
- windows phone 8 开发系列(三)程序清单说明与配置
一 清单文件内容介绍 当我们先建了一个项目之后,我们可以看到vs自动会为我们创建了很多文件,正常人都会先一个个去翻看下每个文件都是干啥的,都主要写了些啥,在这些文件中,在Properies目录下面,我 ...
- Windows下USB磁盘开发系列二:枚举系统中所有USB设备
上篇 <Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>介绍了很简单的获取系统U盘盘符的办法,现在介绍下如何枚举系统中所有USB设备(不光是U盘). 主要调用的API如下: 1 ...
- windows phone 8 开发系列(一)环境搭建
一:前奏说明 本人一名普通的neter,对新玩意有点小兴趣,之前wp7出来的时候,折腾学习过点wp7开发,后来也没怎么用到(主要对微软抛弃wp7的行为比较不爽),现在wp8已经出来一段时间了,市场上也 ...
- BizTalk开发系列(二十八) MSMQ 适配器
MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...
- WordPress版微信小程序开发系列(二):安装使用问答
自WordPress版微信小程序发布开源以来,受关注的程度超过我原来的想象.这套程序主要面对的用户是wordpress网站的站长,如果wordpress站想在微信的生态圈得到推广,小程序成为一种重要的 ...
- 微信小程序开发系列二:微信小程序的视图设计
大家如果跟着我第一篇文章 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 一起动手,那么微信小程序的开发环境一定搭好了.效果就是能把该小程序的体验版以二维码的方式发送给其他朋友使用. 这个系列 ...
- BizTalk开发系列(二十二) 开发自定义Map Functoid
尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...
- 【Qt编程】基于Qt的词典开发系列<二>--本地词典的设计
我设计的词典不仅可以实现在线查单词,而且一个重大特色就是具有丰富的本地词典库:我默认加入了八个类型的词典,如下所示: 由于是本人是通信专业,因此加入了华为通信词典.电子工程词典,又由于我喜爱编程,也加 ...
- Windows phone 应用开发系列教程(更新中)
Windows phone 应用开发[1]-Text To Speech 作为开篇章节.第一篇将在如下介绍一些Windows phone比较有意思的东西-Text To Speech[文 ...
随机推荐
- 使用NIO提升性能
NIO是New I/O的简称,与旧式的基于流的I/O方法相对,从名字看,它表示新的一套Java I/O标准. 具有以下特性: 传统Java IO,它是阻塞的,低效的.那么Java NIO和传统Java ...
- String当中的高效函数(优化)
1. indexOf()函数是一个执行速度非常快的函数,可以用其与subString()实现高效的字符串分割,比内置的要高效. 2. charAt()方法也是高效率的函数,可以用其实现高效的start ...
- 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 8.全局防护盲点的总结下篇
0x01 背景 现在的WEB应用对SQL注入的防护基本都是判断GPC是否开启,然后使用addlashes函数对单引号等特殊字符进行转义.但仅仅使用这样的防护是存在很多盲点的,接上篇http://www ...
- JS 公共方法
1.Format函数 $.GM.Format = function (source, params) { if (arguments.length == 1) return function () { ...
- LeetCode46,47 Permutations, Permutations II
题目: LeetCode46 I Given a collection of distinct numbers, return all possible permutations. (Medium) ...
- 倒数计数器-CountDownLatch
最近写一个多线程程序,老是MAIN方法执行完了子线程还没执行完(不知道以前怎么玩儿的),得不到最终结果,于是找到了CountDownLatch CountDownLatch是一个同步辅助类,java. ...
- app 性能优化的那些事
来源:树下的老男孩 链接:http://www.jianshu.com/p/5cf9ac335aec iPhone上面的应用一直都是以流畅的操作体验而著称,但是由于之前开发人员把注意力更多的放在开发功 ...
- C#读取Word模板替换相应的字符串(标签)生成新的Word
在平常工作中,生成word的方式主要是C#读取html的模板文件处理之后保存为.doc文件,这样的好处是方便,快捷,能满足大部分的需求.不过有些特殊的需求并不能满足,如要生成的Word为一个表格,只是 ...
- Java学习笔记——JDK1.7的新特性。
1,switch中可以使用字串 Java代码: String s = "test"; switch (s) { case "test" : System.out ...
- 【Linux】Shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...