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

相信大家对于如何在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;
}
}

  

2015元旦第一弹——WP8.1应用程序栏(C#后台代码编写)的更多相关文章

  1. JVM第一弹

    JVM第一弹 基本概念 JVM是可运行java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收.堆和一个存储方法域.JVM是运行在操作系统之上的,它与硬件没有直接的交互. 运行 ...

  2. 微信小程序登录JAVA后台

    代码地址如下:http://www.demodashi.com/demo/12736.html 登录流程时序登录流程时序 具体的登录说明查看 小程序官方API 项目的结构图: springboot项目 ...

  3. Java基础-程序流程控制第一弹(分支结构/选择结构)

    Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...

  4. 我的长大app开发教程第一弹:Fragment布局

    在接下来的一段时间里我会发布一个相对连续的Android教程,这个教程会讲述我是如何从零开始开发“我的长大”这个Android应用. 在开始之前,我先来介绍一下“我的长大”:这是一个校园社交app,准 ...

  5. typecho流程原理和插件机制浅析(第一弹)

    typecho流程原理和插件机制浅析(第一弹) 兜兜 393 2014年03月28日 发布 推荐 5 推荐 收藏 24 收藏,3.5k 浏览 虽然新版本0.9在多次跳票后终于发布了,在漫长的等待里始终 ...

  6. 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立

    原文:<ArcGIS Engine+C#实例开发教程>第一讲桌面GIS应用程序框架的建立 摘要:本讲主要是使用MapControl.PageLayoutControl.ToolbarCon ...

  7. Hadoop基础-MapReduce的工作原理第一弹

    Hadoop基础-MapReduce的工作原理第一弹 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在本篇博客中,我们将深入学习Hadoop中的MapReduce工作机制,这些知识 ...

  8. Spring Boot 第一弹,问候一下世界!!!

    持续原创输出,点击上方蓝字关注我吧 目录 前言 什么是Spring Boot? 如何搭建一个Spring Boot项目? 第一个程序 Hello World 依赖解读 什么是配置文件? 什么是启动类? ...

  9. 2015元旦来个炫的html5特效

    效果网址:http://keleyi.com/keleyi/phtml/html5/5.htm 代码: <!DOCTYPE html> <html xmlns="http: ...

随机推荐

  1. 【hdu2222】【poj2945】AC自动机入门题

    HDU2222 传送门 题目分析 裸题:注意构建自动机用的是模式串,思想和kmp很类似. code: #include<iostream> #include<cstdio> # ...

  2. [Android]使用ViewPager实现图片滑动展示

    在淘宝等电商的APP首页经常能看到大幅的广告位,通常有多幅经常更新的图片用于展示促销信息,如下图所示: 通常会自动滚动,也可以根据手势滑动.我没有研究过人家的APP是通过什么实现的,可能有第三方已经封 ...

  3. Ubuntu server使用命令行上板VPNclient

    Ubuntu server使用命令行上板VPNclient VPN,虚拟专用网络,这个技术还是非常有用的.近期笔者參与的项目中就使用上了VPN,大概情况是这种.有两个开发团队,在异地,代码服务器在深圳 ...

  4. 【63.63%】【codeforces 724A】Checking the Calendar

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  5. 微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断

    微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 微信浏览器 HTTP_USER_AGENT作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/archiv ...

  6. matlab 读写其他格式数据文件(excel)

    1. excel matlab和excel 中的数据互相导入 xlswrite() mat ⇒ excel 请问怎么把大容量的mat文件导出到excel文件中 – MATLAB中文论坛 % data. ...

  7. 机器学习: Tensor Flow +CNN 做笑脸识别

    Tensor Flow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数 ...

  8. PYC文件简介

    PYC文件简介¶ 不说废话,这里说的pyc文件就是 Python 程序编译后得到的字节码文件 (py->pyc). 基本格式¶ pyc文件一般由3个部分组成: 最开始4个字节是一个Maigc i ...

  9. matlab 工具函数(一) —— 添加指定 SNR 的噪声

    SNR=PsignalPnoise=10⋅log10∑x=1Nx∑y=1Nyf2(x,y)∑x=1Nx∑y=1Ny(f(x,y)−f^(x,y))2=20⋅log10∥f(x,y)∥∥f^(x,y)− ...

  10. 从零开始学习 asp.net core 2.1 web api 后端api基础框架(四)-创建Controller

    原文:从零开始学习 asp.net core 2.1 web api 后端api基础框架(四)-创建Controller 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...