2015元旦第一弹——WP8.1应用程序栏(C#后台代码编写)

     //第一次写博文,以后还请各位道友互相关照哈。废话不多说,直接进入正题。

     相信大家对于如何在XAML添加应用程序栏应该很清楚,不清楚的话,可以打开新建个Pviot应用 就有系统自带的菜单栏。 本文主要讲的是如何在C#后台进行动态添加应用程序栏以及菜单栏最小化。

首先新建一个空白应用,然后在Gird下键入以下代码:

 <Pivot Name="pivot" SelectionChanged="Pivot_SelectChanged">
            <PivotItem Header="First">
              
                
            </PivotItem>
            
            <PivotItem Header="Second">


            </PivotItem>
            
            <PivotItem Header="Third">


            </PivotItem>
        </Pivot>

然后在MainPage.xaml.cs定义3个菜单:

 CommandBar refresh;
 CommandBar add;
 CommandBar min;

之后,我们定一个方法PrepareAppBars()来实现应用程序栏,这个方法要在OnNavigatedTo()或者构造函数内或者页面加载内实现,这里我选择在OnNavigatedTo()内实现:

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            // TODO: Prepare page for display here.
            PrepareAppBars();
            // TODO: If your application contains multiple pages, ensure that you are
            // handling the hardware Back button by registering for the
            // Windows.Phone.UI.Input.HardwareButtons.BackPressed event.
            // If you are using the NavigationHelper provided by some templates,
            // this event is handled for you.
        }

  

  private void PrepareAppBars()
        {

            //Pivot第一个页面菜单栏
            refresh = new CommandBar();
            refresh.IsOpen = true;
            AppBarButton RefreshBtn = new AppBarButton() { Icon = new BitmapIcon() { UriSource = new Uri("ms-appx:///Assets/refresh.png") } };
            RefreshBtn.Label = "刷新";
            RefreshBtn.Click += RefreshBtn_Click;
            RefreshBtn.IsEnabled = true;

            // 相似的第二个菜单
            AppBarButton SecondBtn = new AppBarButton() { Icon = new BitmapIcon() { UriSource = new Uri("ms-appx:///Assets/add.png") } };
            SecondBtn.Label = "添加";
            SecondBtn.Click += SecondBtn_Click;
            SecondBtn.IsEnabled = true;

            AppBarButton secondCommand = new AppBarButton();
            secondCommand.Label = "菜单一";
            secondCommand.Click += secondCommand_Click;

            AppBarButton secondCommand2 = new AppBarButton();
            secondCommand2.Label = "菜单二";
            secondCommand2.Click += secondCommand2_Click;
            refresh.SecondaryCommands.Add(secondCommand);
            refresh.SecondaryCommands.Add(secondCommand2);
         
            refresh.PrimaryCommands.Add(RefreshBtn);
            refresh.PrimaryCommands.Add(SecondBtn);

           //Pivot第二个页面菜单栏
            add = new CommandBar();
            add.IsOpen = true;

            AppBarButton Pivot_SecondAppBar = new AppBarButton() { Icon = new BitmapIcon() { UriSource = new Uri("ms-appx:///Assets/add.png") } };
            Pivot_SecondAppBar.Label = "添加";
            Pivot_SecondAppBar.Click += Pivot_SecondAppBar_Click;
            SecondBtn.IsEnabled = true;
            add.PrimaryCommands.Add(Pivot_SecondAppBar);

            //Pivot第三个页面菜单栏最小化
            min = new CommandBar();
            AppBarButton thirdCommand = new AppBarButton();
            thirdCommand.Label = "菜单三";
            thirdCommand.Click += thirdCommand_Click;
            min.SecondaryCommands.Add(thirdCommand);
           
            min.ClosedDisplayMode = AppBarClosedDisplayMode.Minimal;
        
        }

  接着,我们定义 应用程序栏的所有单机事件:

   void thirdCommand_Click(object sender, RoutedEventArgs e)
        {
            MessageDialog msg = new MessageDialog("菜单三");
            msg.ShowAsync();
        }

        void Pivot_SecondAppBar_Click(object sender, RoutedEventArgs e)
        {
            MessageDialog msg = new MessageDialog("Pivot第二个页面添加");
            msg.ShowAsync();
        }

        void SecondBtn_Click(object sender, RoutedEventArgs e)
        {
            MessageDialog msg = new MessageDialog("添加");
            msg.ShowAsync();
        }

        void secondCommand2_Click(object sender, RoutedEventArgs e)
        {
            MessageDialog msg = new MessageDialog("菜单二");
            msg.ShowAsync();
        }

        void secondCommand_Click(object sender, RoutedEventArgs e)
        {
            MessageDialog msg = new MessageDialog("菜单一");
            msg.ShowAsync();
        }

        void RefreshBtn_Click(object sender, RoutedEventArgs e)
        {
            MessageDialog msg = new MessageDialog("刷新");
            msg.ShowAsync();
        }

  做完这些之后呢,我们就可以在Pivot_SelectChanged页面选择的时候加载指定的应用程序栏了:

  private void Pivot_SelectChanged(object sender, SelectionChangedEventArgs e)
        {
            switch (pivot.SelectedIndex)
            {
                case 0:
                    BottomAppBar = refresh;
                    break;
                case 1:
                    BottomAppBar = add;
                    break;
                case 2:
                    BottomAppBar = min;
                    break;
            }
        }

  

 

posted on 2015-01-01 15:22  一梦十年  阅读(148)  评论(0编辑  收藏  举报

导航