原文: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 新特性 - 控件之应用程序栏相关推荐

  1. Windows Phone 8.1 新特性 - 控件之列表选择控件

    本篇我们来介绍Windows Phone 8.1 新特性中的列表选择控件. 在Windows Phone 8 时代,大家都会使用 LongListSelector 来实现列表选择控件,对数据进行分组显 ...

  2. 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame

    重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame 原文:重新想象 Windows 8.1 Store Apps (79) - 控 ...

  3. 快速构建Windows 8风格应用6-GridView数据控件

    原文:快速构建Windows 8风格应用6-GridView数据控件 本篇博文主要介绍什么是GridView数据控件.如何构建常用的GridView数据呈现样式. 什么是GridView数据控件? G ...

  4. MFC Windows 程序设计[327]之树形表格控件例程(附源码)

    MFC Windows 程序设计[327]之树形表格控件例程 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries ...

  5. 控件与应用程序许可授权的100%托管的先进控件IntelliLock

    IntelliLock是一个能用于控件与应用程序许可授权的100%托管的先进解决方案.与.NET Reactor提供的基于源代码保护的授权许可系统不同,IntelliLock选择了以100%托管的方式 ...

  6. activex 控件的id 定义位置+使用ocx控件的客户端程序中对控件定义的文件中控件id定义的位置...

    activex 控件的id 定义位置 // SuperDisplayCtl.cpp IMPLEMENT_OLECREATE_EX(CSuperDisplayCtrl, "SuperDispl ...

  7. 一起学Windows Phone7开发(十三.三 输入控件)

    在Phone7中主要的输入控件其实就有两个,一个是textbox,另一个就是password控件.这两个控件中尤其是TextBox控件有了很多新特性. 一.PasswordBox:   密码框控件,用 ...

  8. Windows Phone 7 自动完成输入框控件AutoCompleteBox

    自动完成输入框控件AutoCompleteBox是一种很常用的控件,它实现了文本框的输入的自动搜索的功能,可以加快用户的输入效率.该控件在微软的Silverlight 开源控件项目"Silv ...

  9. 为Windows mobile编写设计友好的控件[Writing designer friendly controls for Windows Mobile]

      在 J2i.Net 上看到了这篇文章 Making Designer Friendly Controls . 原文地址为Simon Hart 的 Writing designer friendly ...

最新文章

  1. NSDictionary、NSMutableDictionary基本使用
  2. 公安领域知识图谱不断升温 或成AI下一风口
  3. BP神经网络预测实例
  4. 如何设置windows下xampp的phpMyAdmin外网访问?
  5. Knative 初体验:CICD 极速入门
  6. Lowest Common Ancestor of a Binary Search Tree a Binary Tree
  7. volatile、const的用法
  8. ZT Web Control 开发系列(一) 页面的生命周期
  9. Scite 中文支持
  10. Python学习相关资料
  11. UVA10738 Riemann vs Mertens【欧拉筛法】
  12. JAVA异常和基础类库
  13. Poj 1166 The Clocks(bfs)
  14. 【模版题】树状数组(单点修改+区间查询)
  15. 面试智力题:赛马问题求前几名
  16. 计算机应用技术企业信息化,计算机应用技术对企业信息化作用
  17. [STM32]Cubemx+USBAudio声卡+I2S+DMA+WM8978实验记录(未解决)
  18. python 进化树_SCHISM 构建克隆进化树
  19. react ts版 组件封装总结
  20. W806-ADC-PWM-TIM尝鲜

热门文章

  1. FileInputStreamTest
  2. 特殊表情存数据库处理
  3. mysql数据类型支持比较运_Mysql支持的数据类型(总结)
  4. matlab实现id3,MATLAB简单实现ID3
  5. Android模糊查询excel文件内容,【excel】模糊查询关键字
  6. kettle连接mysql教程_kettle 连接 mysql8
  7. 为什么用redis做缓存而不是mybatis自带的缓存_如何用Java设计一个本地缓存,涨姿势了...
  8. java 折线图 放大 缩小_可拖拉放大缩小HC折线图 | JShare
  9. Java为xml跟节点添加子节点_如何将xml节点作为第一个子节点插入Java中的另一个xml文档中?...
  10. 关于zabbix_get 的介绍