【轉自:http://www.cnblogs.com/xingfuzzhd/archive/2011/11/22/2259130.html】
一個應用程序的菜單欄的內容是有限的,最多不超過4個,排列順序是以菜單欄中間爲中心,然後從左往右排列。
WP7提供了兩種類型的菜單欄,一種是全局的菜單欄,也就是說在所有的頁面中都會出現的,而另一種就是局部的菜單欄,就是在某個頁面纔出現的。全局的菜單欄必須在App.xaml文件中定義,它會以一行簡單的XAML代碼加到任何一個頁面中。對於局部菜單欄的定義,我們有兩種方法,第一種是使用XMAL,第二種是直接在代碼裏面定義。
菜單欄上的icon限制最大爲48x48像素,所以我們不能超過這個值,否則會失真,因爲它會自動拉申的,WP7已經在系統裏提供了挺多的icon了,所以我們最好是使用系統默認的,因爲我們使用其他的icon,可能會出現一些不可預料的問題,可能而已,哈哈。先使用xaml來實現。
設置全局菜單欄:
新建一個silverlight項目,然後在項目右邊,右鍵點擊項目名選擇Add,接着選擇New folder,命名爲Images,我們要將我們需要顯示的icon放入到Images文件夾裏面,系統裏的icon是放在C:\Program Files \Microsoft SDKs\Windows Phone\v7.1\Icons\dark,你也可以上網自己下載的。
打開App.xaml文件,在裏面輸入如下代碼:
<!--Application Resources-->
<Application.Resources>
<shell:ApplicationBar x:Key="GlobalAppMenuBar" Opacity="1" IsVisible="True"
IsMenuEnabled="True">
<shell:ApplicationBar.Buttons>
<shell:ApplicationBarIconButton IconUri="/Images/appbar.add.rest.png"
Text="add"></shell:ApplicationBarIconButton>
<shell:ApplicationBarIconButton IconUri="/Images/appbar.save.rest.png"
Text="save"></shell:ApplicationBarIconButton>
<shell:ApplicationBarIconButton IconUri="/Images/appbar.delete.rest.png"
Text="delete"></shell:ApplicationBarIconButton>
</shell:ApplicationBar.Buttons>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="Menu Item1" IsEnabled="True"></shell:ApplicationBarMenuItem>
<shell:ApplicationBarMenuItem Text="Menu Item2" IsEnabled="True"></shell:ApplicationBarMenuItem>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</Application.Resources>
打開MainPage.xaml文件,在<phone:PhoneApplicationPage> 輸入以下這行代碼,
ApplicationBar="{StaticResource GlobalAppMenuBar}"
此時運行一下項目發現那三個icon都是交叉的那三個圖標,這是爲什麼呢?這是因爲visual studio還不是很智能,所以你還要設置一下,鼠標放在 appbar.add.rest.png 上,右擊選擇properties,在Build Action裏選擇Content,對另外兩個文件也作同樣的設置,再次運行,就正常顯示出我們想要的效果了。
順便講講Opacity ,這個屬性是設置透明度的,它的值是從0到1的,微軟建議開發者只使用三個值:0,0.5,1。可以試着使用這三種值看看。