对于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,但是我没有成功。还有就是目前的ApplicationBar 还不是很稳定,有时在响应函数中写完代码后,会引起2214错误!希望微软正式的SDK出来后可以有所改善。