在手机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. Sleep v.s. sleep

    Sleep函数_百度百科 http://baike.baidu.com/link?url=EmOxsG_du8HdLbv_9nDVlahpZOQ6DgkoLKooQInorAqIl_CEhCvBzTC ...

  2. Diagram of Spring 3.0 module dependencies--转载

    原文地址:http://www.ogrigas.eu/spring/2009/12/diagram-of-spring-3-0-module-dependencies As Spring 3.0.0. ...

  3. __KERNEL__ macro

    转载:http://blog.csdn.net/kasalyn/article/details/17097639 The __KERNEL__ macro is defined because the ...

  4. LeetCode38 Count and Say

    The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...

  5. Phone List

    Problem Description Given a list of phone numbers, determine if it is consistent in the sense that n ...

  6. mvc3.0 +linq 操作数据库中表的数据(ps:本人菜鸟刚学)

    1:添加控制器类文件HomeController.cs其代码如下: using System; using System.Collections.Generic; using System.Linq; ...

  7. putty ssh login linux

    (1) in linux $ ssh-keygen -t dsa $ cd .ssh $ cat id_dsa.pub > authorized_keys $ chmod 600 authori ...

  8. 《MFC游戏开发》笔记五 定时器和简单动画

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9332377 作者:七十一雾央 新浪微博:http:// ...

  9. Winform---文件夹操作

    一.文件夹的操作 private void button1_Click(object sender, EventArgs e) { //文件夹操作 ////新建文件夹 //Directory.Crea ...

  10. could not read data from '/Users/xxxx/myapp-Info.plist'

    xcode编译报错如下: could not read data from '/Users/iamme/Documents/XCode/myapp/myapp/myapp-Info.plist': T ...