在手机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. 浅析SkipList跳跃表原理及代码实现

    本文将总结一种数据结构:跳跃表.前半部分跳跃表性质和操作的介绍直接摘自<让算法的效率跳起来--浅谈“跳跃表”的相关操作及其应用>上海市华东师范大学第二附属中学 魏冉.之后将附上跳跃表的源代 ...

  2. html 文件上传框 input标签

    文件上传框 有时候,需要用户上传自己的文件,文件上传框看上去和其它 文本域差不多,只是它还包含了一个浏览按钮.访问者可以通 过输入需要上传的文件的路径或者点击浏览按钮选择需要上传 的文件. 代码格式: ...

  3. linux环境中 对tomcat配置java环境

    JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx2048m -XX:MaxPermSize=512m" JAVA_HOME="/weblogic1 ...

  4. entity framework 连接 oracle 发布后出现的问题(Unable to find the requested .Net Framework Data Provider)

    用entity framework 搭建的一个windows 程序,在vs中用oracle 的ODT 工具连接oracle数据库,昨天发布后出现下面一个错误, System.ArgumentExcep ...

  5. 【阿里云产品公测】PTS压力测试WP站搜索

    [阿里云产品公测]PTS压力测试WP站搜索 作者:阿里云用户cnsjw PTS性能测试服务是一个非常非常强大的压力测试工具.可以模拟百人同时访问网站的情况,并监测ECS和RDS的各项指标,生成非常详细 ...

  6. PHP 中mysql如何实现事务提交?

    事务就是指对数据库的多次修改,要么全部成功,要么全部失败,不能出现部分修改成功,部分修改失败的情况. PHP下操作mysql数据库要实现事务提交,需注意以下方面: 1, 数据库表存储引擎类型设置为in ...

  7. Oracle 基础 游标

    一:游标的基本原理 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域, ...

  8. JAVA数字证书制作生成

    1.加密算法 为了网络通讯中的报文安全,一般需要对报文进行加密,目前常用的加密算法有: 非对称加密算法:又称公钥加密算法,如RSA.DSA/DSS,最常用的就是RSA算法(算法公开,可自行百度了解算法 ...

  9. Android锁屏软件

    需求描述:锁屏软件就是点击应用然后直接锁屏,不会弹出任何界面 设计思路:应用启动以后通过getSystemService获取系统的服务,调用安卓系统的DevicePolicyManager和Compo ...

  10. Android实现抽奖转盘

    一.SurfaceView认识及的应用的思路 SurfaceView继承自(extends)View,View是在UI线程中进行绘制: 而SurfaceView是在一个子线程中对自己进行绘制,优势:避 ...