Windows Phone 8.1 新特性 - 控件之应用程序栏
2014年4月3日的微软Build 2014 大会上,Windows Phone 8.1 正式发布。相较于Windows Phone 8,不论从用户还是开发者的角度,都产生了很大的变化。接下来我们会用几篇文章来了解一下这些变化给开发者带来的影响,以及我们如何更好的利用WP8.1 的新特性。
WP8.1 最大的变化就是与Windows Store App 的结合,我们把它们统称为Windows RunTime apps。WP8.1 中的控件位于Windows.UI.XAML.Controls 命名空间下,这和Windows Store App是一致的。
本篇我们先来介绍第一个 WP8.1 的新控件:应用程序栏
应用程序栏想必大家都不陌生,它在WP8 中有很重要的应用,我们也把它叫做ApplicationBar。ApplicationBar 中可以添加按钮和菜单项,我们来看看简单的实现代码:
<phone:PhoneApplicationPage.ApplicationBar><shell:ApplicationBar><shell:ApplicationBar.Buttons><shell:ApplicationBarIconButton Text="Btn1" IconUri="***.png"/><shell:ApplicationBarIconButton Text="Btn2" IconUri="***.png"></shell:ApplicationBar.Buttons><shell:ApplicationBar.MenuItems><shell:ApplicationBarMenuItem Text="Menu Item 1"/><shell:ApplicationBarMenuItem Text="Menu Item 2"/></shell:ApplicationBar.MenuItems></shell:ApplicationBar></phone:PhoneApplicationPage.ApplicationBar>
这个例子里,ApplicationBar 包含了两个按钮和两个菜单项。下面我们来看在WP8.1 中如何实现应用程序栏:
在Windows Store App 中,应用程序栏分为两种,TopAppBar 和 BottomAppBar,分别用做顶部导航栏和底部命令栏。而在WP8.1 中只有BottomAppBar,它起到的作用跟WP8 中的ApplicationBar是相同的。BottomAppBar 可以包含CommandBar, 而CommandBar 中可以使用两种命令元素,主命令元素和辅助命令元素。这两种元素在作用上类似于WP8 中的按钮和菜单项。来看看代码:
<Page.BottomAppBar><CommandBar IsSticky="True"><CommandBar.PrimaryCommands><AppBarButton Icon="ZoomOut" IsCompact="False" Label="ZoomOut"/><AppBarButton IsCompact="True"><AppBarButton.Icon><PathIcon Data="F1 M 20, 10L 10,30L 30,30"/></AppBarButton.Icon></AppBarButton><AppBarButton IsCompact="True"><AppBarButton.Icon><BitmapIcon UriSource="Assets/setting.png"/></AppBarButton.Icon></AppBarButton><AppBarToggleButton IsCompact="False" Label="Omega" IsChecked="True"><AppBarToggleButton.Icon><FontIcon FontFamily="Candara" Glyph="Ω"/></AppBarToggleButton.Icon></AppBarToggleButton></CommandBar.PrimaryCommands><CommandBar.SecondaryCommands><AppBarButton Label="Test01"/><AppBarButton Label="Test02"/></CommandBar.SecondaryCommands></CommandBar></Page.BottomAppBar>
我们为CommandBar定义了两种集合元素,PrimaryCommands 和 SecondaryCommands,集合中的元素可以是AppBarButton 或 AppBarToggleButton。
来看看AppBarButton中几个重要的属性:
* Icon:用于显示应用程序栏按钮的图形内容。它有几种表现方式:
- SymbolIcon - 基于Segoe UI Symbol 字体的字型预定义列表
- FontIcon - 基于指定字体系列的字型
- BitmapIcon - 基于指定Uri的位图图像文件
- PathIcon - 基于路径数据
* Label:程序栏上显示的文字说明
* IsCompact:布尔值,指示是否显示不带标签且边距已缩小的按钮
再来看看AppBarToggleButton, 它与AppBarButton 的不同在于他可以有选中状态:
* IsChecked - 布尔值,选中为True,未选中为False,否则为null。默认为False。
我们在示例中对这几种属性做了演示,PrimaryCommands 中的四个按钮分别采用了四种表现方式,另外结合了Label、IsChecked 和 IsCompact 的属性区别。其中SecondaryCommands 中使用Label 属性来显示信息(而且字母不会像WP8 那样被转换为小写字母)。Icon 和 IsCompact 属性并没有体现。来看看运行效果图:
这样我们就把Windows Phone 8.1 中的应用程序栏的变化演示完了。总体来说新的应用程序栏给我们带来了更多的可选择性和便利,按钮可以有多种表现方式,而不是单一的图片方式;按钮可选择是否显示文字标签,等等。接下来的几篇我会继续介绍Windows Phone 8.1 中的新控件,谢谢大家。
Windows Phone 8.1 新特性 - 控件之应用程序栏相关推荐
- Windows Phone 8.1 新特性 - 控件之列表选择控件
本篇我们来介绍Windows Phone 8.1 新特性中的列表选择控件. 在Windows Phone 8 时代,大家都会使用 LongListSelector 来实现列表选择控件,对数据进行分组显 ...
- 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame
重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame 原文:重新想象 Windows 8.1 Store Apps (79) - 控 ...
- 快速构建Windows 8风格应用6-GridView数据控件
原文:快速构建Windows 8风格应用6-GridView数据控件 本篇博文主要介绍什么是GridView数据控件.如何构建常用的GridView数据呈现样式. 什么是GridView数据控件? G ...
- MFC Windows 程序设计[327]之树形表格控件例程(附源码)
MFC Windows 程序设计[327]之树形表格控件例程 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries ...
- 控件与应用程序许可授权的100%托管的先进控件IntelliLock
IntelliLock是一个能用于控件与应用程序许可授权的100%托管的先进解决方案.与.NET Reactor提供的基于源代码保护的授权许可系统不同,IntelliLock选择了以100%托管的方式 ...
- activex 控件的id 定义位置+使用ocx控件的客户端程序中对控件定义的文件中控件id定义的位置...
activex 控件的id 定义位置 // SuperDisplayCtl.cpp IMPLEMENT_OLECREATE_EX(CSuperDisplayCtrl, "SuperDispl ...
- 一起学Windows Phone7开发(十三.三 输入控件)
在Phone7中主要的输入控件其实就有两个,一个是textbox,另一个就是password控件.这两个控件中尤其是TextBox控件有了很多新特性. 一.PasswordBox: 密码框控件,用 ...
- Windows Phone 7 自动完成输入框控件AutoCompleteBox
自动完成输入框控件AutoCompleteBox是一种很常用的控件,它实现了文本框的输入的自动搜索的功能,可以加快用户的输入效率.该控件在微软的Silverlight 开源控件项目"Silv ...
- 为Windows mobile编写设计友好的控件[Writing designer friendly controls for Windows Mobile]
在 J2i.Net 上看到了这篇文章 Making Designer Friendly Controls . 原文地址为Simon Hart 的 Writing designer friendly ...
最新文章
- NSDictionary、NSMutableDictionary基本使用
- 公安领域知识图谱不断升温 或成AI下一风口
- BP神经网络预测实例
- 如何设置windows下xampp的phpMyAdmin外网访问?
- Knative 初体验:CICD 极速入门
- Lowest Common Ancestor of a Binary Search Tree a Binary Tree
- volatile、const的用法
- ZT Web Control 开发系列(一) 页面的生命周期
- Scite 中文支持
- Python学习相关资料
- UVA10738 Riemann vs Mertens【欧拉筛法】
- JAVA异常和基础类库
- Poj 1166 The Clocks(bfs)
- 【模版题】树状数组(单点修改+区间查询)
- 面试智力题:赛马问题求前几名
- 计算机应用技术企业信息化,计算机应用技术对企业信息化作用
- [STM32]Cubemx+USBAudio声卡+I2S+DMA+WM8978实验记录(未解决)
- python 进化树_SCHISM 构建克隆进化树
- react ts版 组件封装总结
- W806-ADC-PWM-TIM尝鲜
热门文章
- FileInputStreamTest
- 特殊表情存数据库处理
- mysql数据类型支持比较运_Mysql支持的数据类型(总结)
- matlab实现id3,MATLAB简单实现ID3
- Android模糊查询excel文件内容,【excel】模糊查询关键字
- kettle连接mysql教程_kettle 连接 mysql8
- 为什么用redis做缓存而不是mybatis自带的缓存_如何用Java设计一个本地缓存,涨姿势了...
- java 折线图 放大 缩小_可拖拉放大缩小HC折线图 | JShare
- Java为xml跟节点添加子节点_如何将xml节点作为第一个子节点插入Java中的另一个xml文档中?...
- 关于zabbix_get 的介绍