Windows Phone ApplicationBar包含了ApplicationBarIconButton和ApplicationBarMenuItem,最多只能添加四个按钮,菜单通过ApplicationBar右边的省略号来展开,都继承自Microsoft.Phone.Shell命名空间,所以在引用时前面都有shell的标志,如:
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton x:Name="appbarbutton1" IconUri="/icons/appbar.save.rest.png" Text="Save" Click="appbarbutton1_Click"/>
<shell:ApplicationBarIconButton x:Name="appbarbutton2" IconUri="/icons/appbar.delete.rest.png" Text="Delete"/>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem x:Name="appbarmenuitem1" Text="Open"/>
<shell:ApplicationBarMenuItem x:Name="appbarmenuitem2" Text="Exit"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
一 添加图标
ApplicationBarIconButton的图标可以使用自己设计的图标(尺寸48 x 48),也可以使用系统的图标,系统的图标通过Blend 4.0来添加,如下图
二 通过代码访问ApplicationBar
从XAML页面中可以看出,ApplicationBarIconButton和ApplicationBarMenuItem是继承自ApplicationBar,ApplicationBar又继承自PhoneApplicationPage命名空间,而其他SilverLight页面控件是直接继承自PhoneApplicationPage命名空间的。
所以访问ApplicationBar的控件不能像访问Page内容一样,首先添加命名空间Microsoft.Phone.Shell,如
using System;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
namespace PhoneApp1
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
appbarbutton1 = ApplicationBar.Buttons[0] as ApplicationBarIconButton;
appbarmenuitem1 = ApplicationBar.MenuItems[0] as ApplicationBarMenuItem;
}
private void appbarbutton1_Click(object sender, EventArgs e)
{
appbarbutton1.IconUri = new Uri("/icons/appbar.stop.rest.png", UriKind.RelativeOrAbsolute);
appbarmenuitem1.Text = "Close";
}
}
}
三 示例