在手机APP应用当中,我们往往会想某些操作能够进行快速访问或者能够持续显示用户信息的情况,比如像做泡泡堂游戏右边区域玩家信息

在wp7,wp8中为我们提供了ApplicationBar这样的控件来创建一个应用程序栏,以便为用户提供对应用程序最常见任务的快速访问,

1、应用程序栏用户界面

  默认的应用程序栏是位于手机屏幕底部的一行图标按钮和一个省略号。我们可以点击省略号以显示图标按钮和菜单项。而且,当手机更改方向时,应用程序栏会自动调整。当手机处于横向时,应用程序栏会垂直出现在屏幕的一侧。如下图

  

2、应用程序栏开发

使用应用栏有两种创建方式

      一种:使用XAML方式(不需要引用命名空间,默认已经引用 xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone")

      第二种:使用后台代码的方式创建需要引用以下命名空间

        命名空间:  Microsoft.Phone.Shell

          程序集:Microsoft.Phone(位于 Microsoft.Phone.dll 中)

好了,多的不说了,光说不练假把式,下面我们通过两种方式来创建应用栏

Demo1:

       创建XamlDemo.xaml页面,页面代码如下:

 <!--LayoutRoot is the root grid where all page content is placed-->
   
            <!--
            ApplicationBar - 应用程序栏
                Mode - 应用程序栏的样式。ApplicationBarMode.Default:默认(显示图标);ApplicationBarMode.Minimized:最小化(右侧有3个圆点,用于提示单击可弹出 ApBar)
                IsVisible - 是否显示 appbar
                IsMenuEnabled - 是否显示 appbar的 MenuItem
                BackgroundColor - appbarAppBar 的背景色
                ForegroundColor - appbar的前景色
       
            ApplicationBarIconButton - appbar的 IconButon
                IconUri - 按钮图标的地址
                Text - 用于描述按钮功能的文本
                Click - 单击按钮后所触发的事件
       
            ApplicationBarMenuItem - ApBar 的 MenuItem
                Text - 菜单项的文本
                Click - 单击菜单项后所触发的事件
        -->
    <phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" x:Name="appbar">
         <shell:ApplicationBar.MenuItems>
          <shell:ApplicationBarMenuItem IsEnabled="True" Text="1"/>
          <shell:ApplicationBarMenuItem IsEnabled="True" Text="2"/>
         </shell:ApplicationBar.MenuItems>
         <shell:ApplicationBarIconButton IconUri="/Assets/AppBar/Windows.png" IsEnabled="True" Text="微软" Click="ApplicationBarIconButton_Click"/>
            <shell:ApplicationBarIconButton IconUri="/Assets/AppBar/Cell tower.png" IsEnabled="True" Text="安卓"/>
            <shell:ApplicationBarIconButton IconUri="/Assets/AppBar/Apple.png" IsEnabled="True" Text="苹果"/>
            <shell:ApplicationBarIconButton IconUri="/Assets/AppBar/Marker.png" IsEnabled="True" Text="定位"/>
        </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>

Demo2:

上一个简单的例子通过XAML语言创建应用栏,下面我们通过Code的方式,实现和上一个案例一样的效果,我们创建CodeApplicationBar.xaml页面,在XAML页面无需写任何代码,我们通过后台代码CodeApplicationBar.xaml.cs来实现

public CodeApplicationBar()         {

InitializeComponent();

ApplicationBar  = new ApplicationBar();

//默认样式

ApplicationBar.Mode = ApplicationBarMode.Default;

//透明度

ApplicationBar.Opacity = 1.0;

//是否显示

ApplicationBar.IsVisible = true;

//是否启用菜单

ApplicationBar.IsMenuEnabled = true;

//创建ApplicationBarIconButton

ApplicationBarIconButton appBarBtn_Microsoft = new ApplicationBarIconButton();

appBarBtn_Microsoft.IconUri = new Uri("/Assets/AppBar/Windows.png", UriKind.Relative);

appBarBtn_Microsoft.IsEnabled = true;

appBarBtn_Microsoft.Text = "微软";

appBarBtn_Microsoft.Click +=(sender, e) =>

{

MessageBox.Show("you click Mircosoft,Windows Phone We are Come");

};

ApplicationBarIconButton appBarBtn_Android = new ApplicationBarIconButton();

appBarBtn_Android.IconUri = new Uri("/Assets/AppBar/Cell tower.png", UriKind.Relative);

appBarBtn_Android.IsEnabled = true;

appBarBtn_Android.Text = "安卓";

ApplicationBarIconButton appBarBtn_Apple = new ApplicationBarIconButton();

appBarBtn_Apple.IconUri = new Uri("/Assets/AppBar/Apple.png", UriKind.Relative);

appBarBtn_Apple.IsEnabled = true;

appBarBtn_Apple.Text = "苹果";

ApplicationBar.Buttons.Add(appBarBtn_Microsoft);

ApplicationBar.Buttons.Add(appBarBtn_Android);

ApplicationBar.Buttons.Add(appBarBtn_Apple);

}

  

3、应用程序栏属性

      ApplicationBar的属性如下(摘自MSDN):红色为比较常用的属性

      

  名称 说明
BackgroundColor 获取或设置应用程序栏的背景颜色。
Buttons 获取应用程序栏上显示的图标按钮列表。
DefaultSize 获取当 Mode 属性设置为 Default 时应用程序扩展到页面的距离。
ForegroundColor 获取或设置应用程序栏的前景颜色。
IsMenuEnabled 获取或设置一个值,该值指示当用户单击省略号以展开应用程序栏时用户是否看到(可选)菜单项。
IsVisible 获取或设置一个值,该值指示应用程序栏是否可见。
MenuItems 获取应用程序栏上显示的菜单项列表。
MiniSize 获取当 Mode 属性设置为 Minimized 时应用程序扩展到页面的距离。
Mode 获取或设置应用程序栏的大小。
Opacity 获取或设置应用程序栏的不透明度。

4、应用程序栏最佳做法  

   微软MSDN已经帮我们提出在设计程序的时候应当注意的几点,具体实施看项目而定

       以下是使用应用程序栏的最佳做法:

  • 使用 Windows Phone 应用程序栏,代替创建您自己的菜单系统。

  • 除非有特别的理由自定义颜色,否则对应用程序栏使用默认的系统主题颜色。对应用程序栏使用自定义颜色会影响按钮图标的显示质量、会导致菜单动画出现异常的视觉效果,甚至会影响某些显示屏类型的电量消耗。

  • 避免对菜单项使用较长的文本,因为文本会超出屏幕。建议的最大长度为 14 到 20 个字符。

  • 避免在应用程序栏上使用 5 个以上的菜单项,因为这样会强制用户进行滚动。

本笔录大部分来至于MSDN文档

Windows phone(1)-ApplicationBar(应用栏)的更多相关文章

  1. windows phone (26) ApplicationBar应用程序栏

    原文:windows phone (26) ApplicationBar应用程序栏 在应用程序中,如果需要几个按钮或者菜单来执行一些普通的命令,就应该考虑使用ApplicationBar,因为silv ...

  2. Ubuntu 14 添加Windows风格的底部任务栏

    习惯了Windows风格的底部任务栏,而Ubuntu 14是没有的,还好有人做好了一个任务栏插件,可以在线安装: 1.打开终端(Ctrl+Alt+T),然后输入下面的命令 sudo apt-get i ...

  3. C#使用Windows API 隐藏/显示 任务栏 (FindWindowEx, ShowWindow)

    原文 C#使用Windows API 隐藏/显示 任务栏 (FindWindowEx, ShowWindow) 今天,有网友询问,如何显示和隐藏任务栏? 我这里,发布一下使用Windows API 显 ...

  4. Windows 8 应用开发 - 应用栏

    原文:Windows 8 应用开发 - 应用栏      通过应用栏(AppBar)可以在需要时向用户显示各种应用命令.应用栏提供与用户当前页面或当前选定的内容相关的各种命令.默认情况下,应用栏处于隐 ...

  5. 修改 Windows 10 UWP 应用任务栏图标

    修改 Windows 10 UWP 应用任务栏图标 Windows 7 时代,修改任务栏图标很简单,右键打开属性,更改图标即可.但步入 Windows 8 之后,随着应用商店 UWP 应用的问世,可以 ...

  6. eclipse中windows下的preferences左栏没有tomcat?

    是因为缺少eclipse for tomcat 插件,到http://www.eclipsetotale.com/tomcatPlugin.html此网站下载,我的eclipse版本是4.4版本的,所 ...

  7. Windows api实现桌面任务栏隐藏\显示

    //隐藏任务栏 HWND hWnd = ::FindWindow(TEXT("Shell_traywnd"),TEXT("")); ::SetWindowPos ...

  8. Windows 7 添加快速启动栏

    1.右击任务栏空白处,选择 “工具栏” ,单击 “新建工具栏” 2.输入 以下路径: %userprofile%\AppData\Roaming\Microsoft\Internet Explorer ...

  9. windows桌面图标及任务管理栏丢失

    背景环境: 卸载某些软件,如Auto CAD 2011 之后,会出现桌面图标和任务栏丢失的现象,某些重要文件没有保存或者不能注销及重启的动作 1:按组合键Ctrl+Shift+Esc,键调出任务管理器 ...

随机推荐

  1. Oracle的trunc和dbms_random.value随机取n条数据

    今天在review项目代码的时候看到这样一个问题,有一张号码表,每次需要从这样表中随机取6个空闲的号码,也就是每次取出来的6个号码应该都会有所不同.然后我就看到了这样的SQL select   t.* ...

  2. 判断null

    var tmp = this.pullDown.getValue();   if(!tmp && typeof(tmp)!="undefined" &&am ...

  3. iOS开发,让数据更安全的几个加密方式

    任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为重要.在app应用开发中,我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障.这篇 ...

  4. 小小的封装了一个pie的echarts

    function showData(ele,arr1,arr2){ var myChart2 = echarts.init(document.getElementById(ele)); var opt ...

  5. mina 字节数组编解码器的写法 II

    I 里面的写法不够严谨,这也是我之前说它简陋的主要原因,下面来个更加严谨.完整一点儿的: ByteArrayEncoder.java package org.bruce.mina.cpp.codec; ...

  6. Java Script基础(二) 基本语法

    一.变量的声明和使用 JavaScript是一种弱类型的语言,没有明确的数据类型,在声明变量时,不需要指定变量的类型,变量的类型由赋给变量的值决定. 变量声明的语法: var 变量名; 示例: var ...

  7. 2000 Asia shanghai Dance Dance Revolution

    思路:dp[i][x][y]表示第i个序列中,右脚在x位置,左脚在y位置时,其最小花费. 那么dp[i][x][y]=min(dp[i-1][a[i]][y]+cost[a[i]][x],dp[i-1 ...

  8. [转]如何烧录tizen镜像文件?(图文教程)

    http://blog.csdn.net/flydream0/article/details/9179143 上一篇文章我已讲过如何制作镜像文件(http://blog.csdn.net/flydre ...

  9. uclibc,eglibc,glibc之间的区别和联系

    http://bbs.chinaunix.net/thread-3762882-1-1.html 1.Glibc glibc = GNU C Library 是GNU项(GNU Project)目,所 ...

  10. android 底部tabview模板

    以下只是我个人的浅见,大神请忽略~ 底部tab的实现如下图: 现在实现这种界面是有很多方法的,但是对于android新手来说,实现这样的界面还是有难度的. 在网上找到了一个别人写好的底部tab模板,修 ...