信息
您所需的主题如下所示。但此主题未包含在此库中。

如何使用代码为 Windows Phone 创建应用栏

2014/6/18

适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

您可以使用 C# 或 Visual Basic 代码创建一个应用程序栏,以便为用户提供对应用程序常见任务的快速访问。若要决定应该采用 XAML 还是采用代码创建应用程序栏,请参见 Windows Phone 的应用栏

下图显示了应用程序栏由用户展开后的示例。

App Bar expanded with menu items

本主题包括以下部分。

可以全部采用代码向应用程序中添加应用程序栏,而不编辑 XAML 文件。该过程假定您拥有包含一个页面的 Windows Phone 应用程序。在对应用程序栏上的图标按钮使用图像之前,必须首先将这些按钮添加到您的应用程序。有关更多信息,请参见 Windows Phone 的应用栏图标按钮

采用代码创建应用程序栏的步骤

  1. 在编辑器中打开您页面的代码隐藏文件。

  2. 在代码的顶部,添加以下语句。

    using Microsoft.Phone.Shell;
    
  3. 在页面的构造函数中,在对 InitializeComponent 的调用之后,添加以下代码。该代码初始化新的 ApplicationBar 对象并将该对象分配给页面的 ApplicationBar 属性。

    ApplicationBar = new ApplicationBar();
    
  4. 根据需要设置应用程序栏属性。有关属性的更多信息,请参见 Windows Phone 的应用栏

    ApplicationBar.Mode = ApplicationBarMode.Default;
    ApplicationBar.Opacity = 1.0; 
    ApplicationBar.IsVisible = true;
    ApplicationBar.IsMenuEnabled = true;
    
  5. 根据需要创建一个或多个 ApplicationBarIconButton 对象。设置图标图像和按钮文本,然后将它们添加到应用程序栏。如果您未设置按钮文本,则会发生运行时异常。

    ApplicationBarIconButton button1 = new ApplicationBarIconButton();
    button1.IconUri = new Uri("/Images/YourImage.png", UriKind.Relative);
    button1.Text = "button 1";
    ApplicationBar.Buttons.Add(button1);
    
  6. 菜单项是可选的。根据需要创建一个或多个 ApplicationBarMenuItem 对象。设置文本,然后将它们添加到应用程序栏。

    ApplicationBarMenuItem menuItem1 = new ApplicationBarMenuItem();
    menuItem1.Text = "menu item 1";
    ApplicationBar.MenuItems.Add(menuItem1);
    
  7. 下面是一个已完成的应用程序栏示例。在下面的过程中将添加单击事件和处理程序。

    public MainPage()
    {
        InitializeComponent();
    
        ApplicationBar = new ApplicationBar();
    
        ApplicationBar.Mode = ApplicationBarMode.Default;
        ApplicationBar.Opacity = 1.0; 
        ApplicationBar.IsVisible = true;
        ApplicationBar.IsMenuEnabled = true;
    
        ApplicationBarIconButton button1 = new ApplicationBarIconButton();
        button1.IconUri = new Uri("/Images/YourImage.png", UriKind.Relative);
        button1.Text = "button 1";
        ApplicationBar.Buttons.Add(button1);
    
        ApplicationBarMenuItem menuItem1 = new ApplicationBarMenuItem();
        menuItem1.Text = "menu item 1";
        ApplicationBar.MenuItems.Add(menuItem1);
    }
    

图标按钮和菜单项公开您可以采用代码处理的单击事件。

处理单击事件的步骤

  1. 在编辑器中打开您页面的代码隐藏文件。

  2. 对于每个图标按钮和菜单项,确定用户单击时要调用的事件。下面是来自上一过程的应用程序栏的示例,其中标识了单击事件。

    ApplicationBarIconButton button1 = new ApplicationBarIconButton();
    button1.IconUri = new Uri("/Images/YourImage.png", UriKind.Relative);
    button1.Text = "button 1";
    ApplicationBar.Buttons.Add(button1);
    button1.Click += new EventHandler(button1_Click);
    
    ApplicationBarMenuItem menuItem1 = new ApplicationBarMenuItem();
    menuItem1.Text = "menu item 1";
    ApplicationBar.MenuItems.Add(menuItem1);
    menuItem1.Click += new EventHandler(menuItem1_Click);
    
  3. 对于每个图标按钮和菜单项,添加用户单击时要调用的事件。在页面类中添加代码。下面是来自上一过程的应用程序栏的单击事件示例。

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Button 1 works!");
        //Do work for your application here.
    }
    
    private void menuItem1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Menu item 1 works!");
        //Do work for your application here.
    }
    

显示: