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,键调出任务管理器 ...
随机推荐
- 你所不知到的C++ 系列
http://blog.csdn.net/doon/article/category/2926337
- 用iDSDT制作声显卡DSDT
已有 2299 次阅读2011-10-24 21:00 |个人分类:Mac| DSDT 快速增加积分秘笈! windows下!--------------------------------第一步.下 ...
- JavaScript目录
1. 如何快速检查js语法学习Javascript 2. 如何快速掌握CSS(各种CSS工具)
- 除去字符串中不相临的重复的字符 aabcad 得 aabcd
假设有一个字符串aabcad,请编写一段程序,去掉字符串中不相邻的重复字符.即上述字串处理之后结果是为:aabcd; 分析,重点考查 char 与int 的隐式转换.程序如下: static void ...
- 构建高性能服务(三)Java高性能缓冲设计 vs Disruptor vs LinkedBlockingQueue--转载
原文地址:http://maoyidao.iteye.com/blog/1663193 一个仅仅部署在4台服务器上的服务,每秒向Database写入数据超过100万行数据,每分钟产生超过1G的数据.而 ...
- WPF 之 线程使用
但凡涉及到图形界面,往往的设计都是不支持或者不推荐使用多个线程操作界面内容.而且通常会有一个专门的线程调度器来处理任务线程和界面线程的问题. 下面提供两个方案: 1.使用Dispatcher.Begi ...
- 中科院 2014年GCT考前辅导课程安排
: 2014年GCT考前辅导课程安排 发布时间: 2014-07-14 阅读次数:1225 默认字体 9pt ...
- 《Cortex-M0权威指南》之体系结构---异常和中断
转载请注明来源:cuixiaolei的技术博客 异常会引起程序控制的变化.在异常发生时,处理器停止当前的任务,转而执行异常处理程序,异常处理完成后,会继续执行刚才的任务.异常分为很多种,中断是其中之一 ...
- Shell学习笔记 - 正则表达式
一.正则表达式是什么? 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作. 二.正则表达式与通配符 1. 正则表达式 用来在文件中匹配符合条件的字 ...
- Matlab之画图
1.设置对数坐标 set(gca,'XScale','log','YScale','log'); 2.加网格 grid on; 3.加log对齐网格 set(gca,'XScale','log','Y ...
