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,键调出任务管理器 ...
随机推荐
- InAction-MR的topK
本来只是想拿搜狗的数据练练手的,却无意踏足MR的topK问题.经过几番波折,虽然现在看起来很简单,但是摸爬滚打中也学到了不少 数据是搜狗实验室下的搜索日志,格式大概为: 00:00:00 298219 ...
- 基于python3的手机号生成脚本
今天利用业余,自己突发想法来写个手机号码生成的脚本,其实自己用的方法很简单,想必肯定又不少人写的比我的好,我只是自己闲来无聊搞一下, #作者:雷子 #qq:952943386 #日期:2016年7月1 ...
- 1.4.7 Schema API
Schema API Schema API允许使用REST API每个集合(collection)(或者单机solr的核(core)).包含了定义字段类型,字段,动态字段,复制字段等.在solr4.2 ...
- framework&&library's root
框架和文件集合的路径应该是相对路径而不是绝对路径 写法如下图所示:
- 关于URLEncoder的编码和URLDecode解码
在我们开发中,很多时候会遇见各种编码乱码的问题,其实这都是编码不一致的问题,如果你懂得了关于URLEncoder的编码和URLDecode解码,那么问题就会随之消失! 下面我们看看关于编码的代码: [ ...
- java jdbc连接mysql
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...
- Linux下MySQL主从同步配置
Centos6.5 MySQL主从同步 MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192.168.1.102 一. ...
- Shodan!
Shodan! 简介 首先先介绍一下Shodan CNNMoney的一篇文章写道,虽然目前人们都认为谷歌是最强劲的搜索引擎,但Shodan才是互联网上最可怕的搜索引擎. 与谷歌不同的是,Shodan不 ...
- 【转】学习JAVA的步骤
好东西大家分享: JAVA学习的一些重点 . Java语言基础 谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的 ...
- Unity之定时调用
1.Invoke(string methodName,float time) 在一定时间调用methodName函数 using UnityEngine; using System.Collectio ...