wp7学习笔记一

来源:luqidong 发布时间:2014-05-27 22:02:19 点击数:

 近几年,移动平台开发甚火,N多人因为Android刚出来没看好就没去研究,但是Android现在实在太火了~~和多人都后悔,WP7是微软的移动平台,用的语言就是C#,入门简单,Android是java适合有java基础的人学习,而苹果的移动系统用的是object-C,目前而已三大移动平台只能是这三个了,至于MeeGo,据说很好,但是因为形势不被支持,用的语言也是java。但是相信MeeGo后面的路还是应该走的很好的。

  捧着热爱学习的精神决定将每次的学习过程记录下来,以便以后好温故知新。

  首先WP7方面的开发需要的平台是VS2010 并且操作系统是Win7的,还需要模拟器等,VS2010随便去网上下个,我给个模拟器的地址:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=04704acf-a63a-4f97-952c-8b51b34b00ce&displaylang=en

 

  由于WP7移动的开发用的语言是C#,界面和WinForm类似,继承了微软的简化开发的特征,容易上手,很多都和我们现在学的ASP.NET类似。

控件都值可以直接拖然后选择事件写代码,很有亲切感哦~~

  OK,下面说下页面传值,和ASP.NET几乎一样,拖一个btn控件,新建一个页面为Page1,在Main页面的btn控件按钮的单击事件这样写:this.NavigationService.Navigate(new Uri("/Page1.xaml?name="+textBox1.Text+"",UriKind.Relative)); UriKind.Relative 的意思是Uri的类型是相对地址,传的值的名字是name 值是textBox1.Text里的值。在另一个页面先判断是否有值有的话就读取出来:

            if(this.NavigationContext.QueryString.ContainsKey("name"))
            {
                this.PageTitle.Text = this.NavigationContext.QueryString["name"];
            }

意思是在pagetitle显示出来。怎么样和ASP.NET太像了吧。学起来也比较容易,因为貌似很多人对.net方面的开发不是太感兴趣,感觉做网站不好,出去后也不知道能不能找到好工作,我推荐可以利用课外时间去研究下WP7,因为未来的趋势就是移动平台的火,现在这方面的人才很少,我们不如先下手为强,稍微学点,以后也好接轨,这工作的工资肯定不低。

Windows Phone7允许创建多个页面

一.跳转:

可以通过这条语句来完成:this.NavigationService.Naviagte(new Uri("/testPage.xaml", UriKind.Relative));

向前跳转:this.NavigationService.GoFroward();

向后跳转:this.NavigationService.GoBack();

 

二.传值

对于页面间的传值,可以使用PC上的Sliverlight 或Asp.net的传值方式。一般常用的有:Application或QueryString等方式。

 

对于Windows Phone 7程序来说,UI是用Sliverlight来开发的,但是并不完全是Sliverlight的全集,与子集的关系,因为Phone 7上有的API或功能PC上是没有的(比如这个application bar),那PC上的sliverlight就更不用说了。

Application Bar就是所谓的菜单栏,它包括Iconbutton和Menu两种类型。Iconbutton就相当于菜单栏里的工具栏,可以带图标;Menu就是菜单了,但是没有二级菜单。在创建之前一定要先在Reference里加入Microsoft.Phone.shell,并且在xaml页面加上xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone.Shell".

一.IconBar

要创建IconBar,就一定要有Icon,Phone7对Icon的要求比较严:大小一定是48X48相素的png图,图型居中,前景色一般为白色,大小为26X26.有了图片就可以创建了,如果没有也没有关系,微软给提供了一套图标http://www.microsoft.com/downloads/details.aspx?familyid=369B20F7-9D30-4CFF-8A1B-F80901B2DA93&displaylang=en

创建Iconbar:

<navigation:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">>
<shell:ApplicationBar.Buttons>
<shell:ApplicationBarIconButton x:Name="btnTest" Click="btnTest_Click" IconUri="appbar.add.rest.png"></shell:ApplicationBarIconButton>
</shell:ApplicationBar.Buttons>
</shell:ApplicationBar>
</navigation:PhoneApplicationPage.ApplicationBar>

这样就创建了一个Iconbar。但是一定要注意,Iconbar的数量是有限制的,最多只能加5个,并且第5个是显示不出来的,也就是实际上只能最多加4个。

 

二.Menu

创建Menu很简单没有什么限制。

<navigation:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem x:Name="mTest" Text="Text" Click="mTest_Click"></shell:ApplicationBarMenuItem>
<shell:ApplicationBarMenuItem x:Name="mTes1" Text="Text" Click="mTest1_Click"></shell:ApplicationBarMenuItem>
<shell:ApplicationBarMenuItem x:Name="mTest2" Text="Text" Click="mTest2_Click"></shell:ApplicationBarMenuItem>
<shell:ApplicationBarMenuItem x:Name="mTest3" Text="Text" Click="mTest3_Click"></shell:ApplicationBarMenuItem>

</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</navigation:PhoneApplicationPage.ApplicationBar>

还有就是目前的ApplicationBar 还不是很稳定,有时在响应函数中写完代码后,会引起2214错误!希望微软正式的SDK出来后可以有所改善。