本文和大家重点学习一下Windows Phone开发中ApplicationBar用法,ApplicationBar就是所谓的菜单栏,它包括Iconbutton和Menu两种类型。Iconbutton就相当于菜单栏里的工具栏,可以带图标;Menu就是菜单了,但是没有二级菜单。
Windows Phone开发中ApplicationBar用法
对于WindowsPhone7程序来说,UI是用Sliverlight来开发的,但是并不完全是Sliverlight的全集,与子集的关系,因为Phone7上有的API或功能PC上是没有的(比如这个applicationbar),那PC上的sliverlight就更不用说了。
ApplicationBar就是所谓的菜单栏,它包括Iconbutton和Menu两种类型。Iconbutton就相当于菜单栏里的工具栏,可以带图标;Menu就是菜单了,但是没有二级菜单。在创建之前一定要先在Reference里加入Microsoft.Phone.shell,并且在xaml页面加上xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone.Shell".
一.IconBar
Windows Phone开发中要创建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:ApplicationBarIsVisibleshell:ApplicationBarIsVisible="True"IsMenuEnabled="True">>
- <shell:ApplicationBar.Buttons>
- <shell:ApplicationBarIconButtonx:Nameshell:ApplicationBarIconButtonx: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
Windows Phone开发中创建Menu很简单没有什么限制。
- <navigation:PhoneApplicationPage.ApplicationBar>
- <shell:ApplicationBarIsVisibleshell:ApplicationBarIsVisible="True"IsMenuEnabled="True">>
- <shell:ApplicationBar.MenuItems>
- <shell:ApplicationBarMenuItemx:Nameshell:ApplicationBarMenuItemx:Name="mTest"Text="Text"Click="mTest_Click"></shell:ApplicationBarMenuItem>
- <shell:ApplicationBarMenuItemx:Nameshell:ApplicationBarMenuItemx:Name="mTes1"Text="Text"Click="mTest1_Click"></shell:ApplicationBarMenuItem>
- <shell:ApplicationBarMenuItemx:Nameshell:ApplicationBarMenuItemx:Name="mTest2"Text="Text"Click="mTest2_Click"></shell:ApplicationBarMenuItem>
- <shell:ApplicationBarMenuItemx:Nameshell:ApplicationBarMenuItemx:Name="mTest3"Text="Text"Click="mTest3_Click"></shell:ApplicationBarMenuItem>
- </shell:ApplicationBar.MenuItems>
- </shell:ApplicationBar>
- </navigation:PhoneApplicationPage.ApplicationBar>
另外,据说直接在程序中添加代码也可以生成ApplicationBar,但是我没有成功。还有就是目前的ApplicationBar还不是很稳定,有时在响应函数中写完代码后,会引起2214错误!希望微软正式的SDK出来后可以有所改善。