對於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出來後可以有所改善。