WP8.1学习系列(第一章)——添加应用栏

  做过android开发的同学们应该都知道有个ActionBar的头部操作栏,而wp也有类似的一个固定在app页面里通常拥有的内部属性,就是应用栏。以前叫做ApplicationBar,现在wp和win统一称AppBar,以后Win10一统手机和桌面相信Api将会高度统一。

  废话不多说了,从wp8.1开始,系统提供了AppBar和CommandBar两种控件,CommandBar集成了很多功能,但是是系统指定的模板,如果要高度自定义(如显示进度条,搜索框等等)应用栏就需要使用AppBar了。其中AppBar有两种,一种是TopAppBar,一种是BottomAppBar,一个在顶部一个在底部。只有windows才支持TopAppBar,wp只支持BottomAppBar。而CommandBar也分两种,一种是PrimaryCommands,另一种是SecondaryCommands,在windows上的区别是PrimaryCommands靠右边,SecondaryCommands靠左边;而在wp上的区别是PrimaryCommands是底部可见区域,SecondaryCommands是默认隐藏的。CommandBar还有个ClosedDisplayMode该属性有两个状态可供选择,Minimal是迷你模式仅显示右边三个点,并且AppBar的高度也缩减到仅包括三个点的高度,Compact就是默认模式。

  应用栏主要包含两种元素,一种是按钮一种是分割线。所以系统为我们提供了AppBarButton、AppBarToogleButton和AppBarSeperator三个控件,而普通AppBarButton主要是三个属性需要我们更改,一个是Lable文本,一个是Icon,还有Click点击事件也比较常用,还有一个是IsCompact是否收起,如果为True就会隐藏文本仅显示图标,反之两者都会显示,但是在wp上这个属性貌似不会起作用。

其中Icon 属性设置为从 IconElement 类派生而来的元素。共提供了 4 种图标元素:

  • FontIcon - 此类图标基于指定字体系列的字形。
  • BitmapIcon - 此类图标基于指定了 Uri 的位图图像文件。
  • PathIcon - 此类图标基于 Path 数据。
  • SymbolIcon - 此类图标基于 Segoe UI Symbol 字体中的预定义字形列表。

一、静态示例

  xaml示例:

<Page.BottomAppBar>
        <CommandBar x:Name="cm" ClosedDisplayMode="Minimal">
            <CommandBar.PrimaryCommands >
                <AppBarButton Label="确定" Click="AppBarButton_Click" IsCompact="False" Icon="Accept"/>
                <AppBarButton x:Name="abb" Label="搜索" Icon="Find"/>
                <AppBarButton Label="收藏" Icon="Favorite"/>
                <AppBarButton Label="附件" Icon="Attach"/>
            </CommandBar.PrimaryCommands>
            <CommandBar.SecondaryCommands>
                <AppBarButton Label="关于"/>
                <AppBarButton Label="使用帮助"/>
                <AppBarButton Label="反馈"/>
            </CommandBar.SecondaryCommands>
        </CommandBar>
    </Page.BottomAppBar>

如下图,上面一排就是PrimaryCommands,下面一列就是SecondaryCommands

静态的AppBar应该都没什么好说的,选择Icon资源时我们可以利用系统提供的很多规范的图标,按下图即可找到系统资源。

二、动态控制

  市场上众多的教程书上只会叫你做静态的AppBar,但现实中可能需要对AppBar的动态控制,接下来将会讲解怎么对AppBar动态控制。这个示例的流程是:打开程序将会有一个WebView来加载网页,一开始AppBar是迷你状态的,当网页加载完后将会把AppBar恢复到标准状态,底部四个按钮可见。并且当网页加载完,AppBar的背景色将设置为系统的背景色。然后点击第一个按钮的时候将隐藏掉第二个按钮,再次点击第一个按钮将会把第二个按钮恢复为可见。

  

     /// <summary>
        /// 当网页加载完毕后触发
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void WebView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
        {
            if (cm.ClosedDisplayMode == AppBarClosedDisplayMode.Minimal)
            {
                //如果是迷你模式将切换至标准模式
                cm.ClosedDisplayMode = AppBarClosedDisplayMode.Compact;
                //尝试把四个按钮的文字显示出来,但是没有任何效果
                for (int i = 0; i < cm.PrimaryCommands.Count; i++)
                {
                    ((AppBarButton)cm.PrimaryCommands.ElementAt(i)).IsCompact = false;
                }
                //设置为系统主题
                this.BottomAppBar.Background = (Brush)Application.Current.Resources["PhoneAccentBrush"];
            }

        }

        /// <summary>
        /// 按下第一个按钮,动态控制第二个按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void AppBarButton_Click(object sender, RoutedEventArgs e)
        {

            if (this.cm.PrimaryCommands.Contains(abb))
            {
                this.cm.PrimaryCommands.Remove(abb);
            }
            else
            {
                this.cm.PrimaryCommands.Insert(1, abb);
            }

        }

上图

加载中,AppBar是迷你模式,并且背景色也是黑色。加载完之后背景色就变成系统颜色了。

点击第一个勾,第二个搜索按钮就隐藏了,再次点击又变回来了,而且还是在第二个位置。

时间: 2024-10-01 07:30:38

WP8.1学习系列(第一章)——添加应用栏的相关文章

WP8.1学习系列(第二十章)——添加控件和处理事件

先决条件 添加控件 设置控件的名称 设置控件属性 创建事件处理程序 新控件 总结 相关主题 通过使用如按钮.文本框和组合框等控件,你可以创建应用的 UI. 下面将显示如何将控件添加到应用.处理控件时,你通常会使用此模式: 将控件添加到应用 UI. 设置控件的属性,如宽度.高度或前景色. 将代码连接到控件,从而使控制执行任务. 路线图: 本主题与其他主题有何关联?请参阅: 使用 C# 或 Visual Basic 的 Windows 运行时应用的路线图 使用 C++ 的 Windows 运行时应用

WP8.1学习系列(第二章)——Toast通知

Toast 通知概述(Windows 运行时应用) 你的应用要想通过 Toast 通知通信,必须在应用的清单文件中声明它支持 Toast.Toast 通知可包含文本,并且 Windows 上的 Toast 通知可包含图像,但不支持辅助操作(例如按钮).Toast 还可在显示时播放系统定义的声音.在 Windows 上,Toast 通知显示在屏幕的右上角(对于从右到左 (RTL) 的语言,显示在左上角).在 Windows Phone 8.1 上,Toast 通知显示在屏幕顶部.Toast 通知可

WP8.1学习系列(第九章)——透视Pivot开发指南

Windows Phone 8 的 Pivot 控件 2014/6/18 适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1 Windows Phone Pivot 应用提供了一种快速管理视图或页面的方法.该方法可以用于筛选大型数据集.查看多个数据集或切换应用视图.例如,在页面上从左至右轻拂或平移,可以前进到内容的下一个页面. 本主题包括以下部分. Pivot 控件概述 导航支持 Pivot 应用功

Java学习记录第一章

学习Java第一章的记录,这一章主要记录的是Java的最基础部分的了解知识,了解Java的特性和开发环境还有Java语言的优缺点. 计算机语言的发展大概过程:机器语言--->汇编语言--->高级语言(面向过程的语言和面向对象的语言)总而言之就是从人类比较难识别的字符串向人类自然语言靠近使代码的可读性越来越高. Java的发展过程:1991年Sun公司为了抢占市场先机,成立了一个称为Green的项目小组,帕特里克.詹姆斯·高斯林.麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕

WP8.1学习系列(第二十六章)——控件模板

在本文中 自定义控件模板示例 指定控件的可视结构. 指定控件的可视行为 使用工具轻松处理主题 控件和辅助功能 了解有关控件默认模板的详细信息 控件模板中的主题资源 相关主题 在 XAML 框架中,如果要自定义控件的可视结构和可视行为,请创建控件模板.控件有多个属性,如 Background.Foreground 以及FontFamily,可以设置这些属性以指定控件外观的多个方面.但是可以通过设置这些属性所做的更改有限.可以使用 ControlTemplate 类创建提供其他自定义的模板.在此处,

K&amp;R 学习笔记 第一章

今天开始学习C语言,为了之后的游戏开发学习做好基础,其实在大一的时候学校有C语言的课程,学的马马虎虎,教学也比较浅显,感觉并不能学习到C语言的精髓.在经过多人推荐下,入手了K&R ,看了第一章之后,才发现的确值得这么多人称赞. 其实大多数书的第一章都是差不多的,以Hello World 引出本书学习的知识体系的顺序,有趣的是之后的练习,也是要花一番功夫的. 1.4 提到了幻数,所谓幻数,就是在程序中直接使用的数字.C语言的传统方式是使用#define行来对付幻数.C语言预处理程序是一个强有力的工

C++ Primer Plus学习:第一章

C++入门第一章:预备知识 C++简介 C++融合了三种不同的编程方式: C语言代表的过程性语言. C++在C语言基础上添加的类代表的面向对象语言. C++模板支持的泛型编程. C++简史 20世纪70年代贝尔实验室开发. C语言编程原理 计算机语言要处理两个概念:数据和算法. 数据是程序使用和处理的信息.算法是程序使用的方法. C语言为过程性(procedural)语言,强调编程的算法.过程化编程首先要确定计算机应采取的操作,然后使用编程语言实现这些操作. C语言具有结构化编程(structu

【PMP】Head First PMP 学习笔记 第一章引言

第一章 引言 高效的解决项目中同样的问题 最佳的评估你的任务并合理安排,从而保证项目尽可能迅速而高效的完成 计划和跟踪成本的有关技术 如何针对项目中存在的缺陷做出计划并加以防范 项目经理的特征 知识. 关注项目领域的发展动态,可以从每个人的成功和失误中学习经验教训,从而能更好的完成你的工作.知道所有的工具和技术,并且知道何时使用和如何使用. 绩效. 必须付诸行动,要求你认真而有效地工作. 个人技能. 既然你要管理人,就注意哪些方面能够激励他们,哪些方面会对他们造成障碍.作为一个项目经理,你的任务

JavaScript学习笔记(第一章——第三章)

说明 参考资料:<JavaScript高级程序设计(第3版)> 笔记主要为<JavaScript高级程序设计(第3版)>读书记录,按照此书的章节学习记录.方便以后查询复习(PS:正版书99大洋,没舍得买.在淘宝46买了一本盗版的并带一本 <JavaScript DOM编程艺术(第2版)>).两本书同时阅读,但以<JavaScript高级程序设计(第3版)>为主要学习路线.重要说明性内容将以近似书中原文摘出(以免出现个人解释歧义),外加自己遇到特殊情况说明(不