Windows phone(1)-ApplicationBar(应用栏)
在手机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(应用栏)的更多相关文章
- windows phone (26) ApplicationBar应用程序栏
原文:windows phone (26) ApplicationBar应用程序栏 在应用程序中,如果需要几个按钮或者菜单来执行一些普通的命令,就应该考虑使用ApplicationBar,因为silv ...
- Ubuntu 14 添加Windows风格的底部任务栏
习惯了Windows风格的底部任务栏,而Ubuntu 14是没有的,还好有人做好了一个任务栏插件,可以在线安装: 1.打开终端(Ctrl+Alt+T),然后输入下面的命令 sudo apt-get i ...
- C#使用Windows API 隐藏/显示 任务栏 (FindWindowEx, ShowWindow)
原文 C#使用Windows API 隐藏/显示 任务栏 (FindWindowEx, ShowWindow) 今天,有网友询问,如何显示和隐藏任务栏? 我这里,发布一下使用Windows API 显 ...
- Windows 8 应用开发 - 应用栏
原文:Windows 8 应用开发 - 应用栏 通过应用栏(AppBar)可以在需要时向用户显示各种应用命令.应用栏提供与用户当前页面或当前选定的内容相关的各种命令.默认情况下,应用栏处于隐 ...
- 修改 Windows 10 UWP 应用任务栏图标
修改 Windows 10 UWP 应用任务栏图标 Windows 7 时代,修改任务栏图标很简单,右键打开属性,更改图标即可.但步入 Windows 8 之后,随着应用商店 UWP 应用的问世,可以 ...
- eclipse中windows下的preferences左栏没有tomcat?
是因为缺少eclipse for tomcat 插件,到http://www.eclipsetotale.com/tomcatPlugin.html此网站下载,我的eclipse版本是4.4版本的,所 ...
- Windows api实现桌面任务栏隐藏\显示
//隐藏任务栏 HWND hWnd = ::FindWindow(TEXT("Shell_traywnd"),TEXT("")); ::SetWindowPos ...
- Windows 7 添加快速启动栏
1.右击任务栏空白处,选择 “工具栏” ,单击 “新建工具栏” 2.输入 以下路径: %userprofile%\AppData\Roaming\Microsoft\Internet Explorer ...
- windows桌面图标及任务管理栏丢失
背景环境: 卸载某些软件,如Auto CAD 2011 之后,会出现桌面图标和任务栏丢失的现象,某些重要文件没有保存或者不能注销及重启的动作 1:按组合键Ctrl+Shift+Esc,键调出任务管理器 ...
随机推荐
- Android广播机制:Broadcast
转载:Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广 ...
- Jquery实现文本框获取焦点清空内容,失去焦点重新获得内容的公共函数
最近在做一个同城交友网站你给我吧(www.niyuewo.com)时写的一个函数与大家分享: //清除input中的内容 $(document).ready(function(){ $("i ...
- qt超强绘图控件qwt - 安装及配置
qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式 ...
- 30款css3实现的鼠标经过图片显示描述特效
今天给大家分享30款css3实现的鼠标经过图片显示描述特效,鼠标经过这些图片的时候以非常炫的方式显示图片的描述.为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现 ...
- laravel 5.0 artisan 命令列表(中文简体)
#php artisan list Laravel Framework version Usage: [options] command [arguments] Options(选项): --help ...
- 1.4.7 Schema API
Schema API Schema API允许使用REST API每个集合(collection)(或者单机solr的核(core)).包含了定义字段类型,字段,动态字段,复制字段等.在solr4.2 ...
- 保持查询语法指示的联接顺序Option(Force order)
Option(Force order) 今天和大家分享一下 SQL中强制执行联接顺序Option(Force Order) 一.SQL本身SQL引擎优化已经做的非常好了,但是也有默认的多表连接引擎效果 ...
- JS实现滚动条滚到页面距离底部300px时执行事件的方法
scrollTop为滚动条在Y轴上的滚动距离. clientHeight为内容可视区域的高度. scrollHeight为内容可视区域的高度加上溢出(滚动)的距离 $(window).scroll(f ...
- 【¥200代金券、iPad等您来拿】 阿里云9大产品免费公测#10月9日-11月6日#
#10.09-11.06#200元代金券.iPad大奖, 9大产品评测活动! 亲爱的阿里云小伙伴们: 云产品的多样性(更多的云产品)也是让用户深度使用云计算的关键.今年阿里云产品线越来越丰富,小云搜罗 ...
- Android Activity的启动过程
文章编辑的太长了,请移步我的csdn博客:http://blog.csdn.net/xyh269 Android Activity的启动过程原文链接:http://blog.csdn.net/xyh2 ...
