如何在 Windows Phone 的代码中创建应用程序栏

2012/2/9

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

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

带有菜单项的已扩展应用程序栏

可以全部采用代码向应用程序中添加应用程序栏,而不编辑 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.
    }
    

显示: