注:本系列学习帖子我在DevDiv.com移动开发社区原创首发
转载请注明出处:BeyondVincent(破船)@DevDiv.com
如果你有什么问题也可以前往交流
下面是首发地址:
今天我们来学习一下Windows 8 AppBar的使用。本次主题会包含以下内容:
1、Windows 8AppBar介绍
2、Windows
8AppBar定义[预定义和自定义按钮风格的使用]
3、AppBar中按钮事件的处理
4、Demo演示与代码下载
更多内容请查看下面的帖子
Windows 8 Metro App开发Step by Step
1、Windows 8AppBar介绍
在Windows 8设备上,当用户做一个向上滑动的手势或者点击鼠标右键,应用程序栏(AppBar)会出现在屏幕的底部,Metro Ui强调在主布局中尽量少出现控件,主要依托AppBar进行交互。如下图所示,就是开始程序的AppBar。
注意,在这里体现了Metro App UI设计风格:选中项对应的操作按钮放在AppBar的左边,其它的按钮则放在右边。
如下图,我选中了Video程序。左边出现了对应的从“开始”屏幕取消固定,卸载,缩小,右边则是所有应用。
提示:在屏幕的顶部也有相似的控件——导航栏(NavBar),用于Metro程序中不同画面的导航。在后面的学习系列中,我会进行介绍。
2、Windows
8AppBar定义[预定义和自定义按钮风格的使用]
创建AppBar最简单的方法就是在XAML文件中声明AppBar。在这里我使用Blank
App模版创建了一个程序,如下图:
在其中的MainPage.xaml中,我添加了如下代码
代码添加在</Grid>之后
<Grid Background ="PaleGoldenrod">
</Grid>
<Page.BottomAppBar>
<AppBar>
<Grid Background="Firebrick" HorizontalAlignment="Left" Width="1346">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="425*">
</ColumnDefinition>
<ColumnDefinition Width="248*"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" Grid.Column="0" HorizontalAlignment="Left">
<Button x:Name="AppBarSearchButton" Style="{StaticResource SearchAppBarButtonStyle}" Click="AppBarButtonClick" AutomationProperties.Name="搜索"/>
<Button x:Name="AppBarMoreButton" Style="{StaticResource MoreAppBarButtonStyle}" Click="AppBarButtonClick" AutomationProperties.Name="更多"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Right">
<Button x:Name="AppBarHomeButton" Style="{StaticResource DoneAppBarButtonStyle}" Click="AppBarButtonClick"/>
</StackPanel>
</Grid>
</AppBar>
</Page.BottomAppBar>
从上面的代码中,看出,我在Page.BottomAppBar属性中声明了AppBar控件。也就是说,通过上面的代码,创建了一个AppBar和相关内容,并把AppBar赋值给了MainPage页面的BottomAppBar属性。 提示:在Page.TopAppBar属性里面可以通过声明AppBar来创建NavBar,当然,在后面的学习系列中,我会详细讲解。为了遵循Metro App Ui关于 AppBar的设计准则,我在AppBar控件里面添加了一个一行两列的网格(Grid),每列包含一个栈面板(StackPanel)。 下面我们来看看栈面板里面的内容,也就是按钮的添加。按钮的风格添加有两种方法,这里我会进行使用讲解。第一种方法:我在第一个栈面板中定义的两个按钮搜索和更多。他们使用了StandardStyles.xaml里面系统提供的风格。StandardStyles.xaml为我们的程序提供了许多风格,如下是定义了搜索按钮的风格:
<Style x:Key="SearchAppBarButtonStyle" TargetType="Button" BasedOn="{StaticResource AppBarButtonStyle}">
<Setter Property="AutomationProperties.AutomationId" Value="SearchAppBarButton"/>
<Setter Property="AutomationProperties.Name" Value="Search"/>
<Setter Property="Content" Value=""/>
</Style>
所有这些预定义的按钮风格都是继承自 AppBarButtonStyle,AppBarButtonStyle 定义了AppBar按钮的基本特征。在下一节中创建自定义按钮也会继承自这个风格。提示:在文件 StandardStyles.xaml 中已经定义了 29 中应用程序按钮风格,但是来自
XAML小组的微软项目经理提供了非正式的替代文件,该文件定义了 150 种不同的风格。该文件可以在下面的连接中看到:XAML
AppBar Button Styles for Windows 8
区分不同按钮的两个属性是AutomationProperties.Name和Content。
AutomationProperties.Name 属性指定了按钮显示的文本
Content 属性指定会被用到的 icon。这个属性(Content)的值来自 Segoe UI Symbol 字体的编码。可以通过 Windows 8 提供的字符表(Character Map)工具来查看这种字体定义的 icon。值 E10B对应的是一个勾号。下面的代码给出了AppBar使用预定义的SearchAppBarButtonStyle风格:
[注:在StandardStyles.xaml文件定义的Name是Search,为了显示中文,我在这里修改为了搜索]<Button x:Name="AppBarSearchButton"
Style="{StaticResource SearchAppBarButtonStyle}"
Click="AppBarButtonClick"
AutomationProperties.Name="搜索"/>
第二种方法:使用自定义的风格。
我在工程中添加了一个文件夹:Resources,并添加了一个字典资源文件:MyDictionary.xaml,如下图所示
在MyDictionary.xaml文件中,我定义了DoneAppBarButtonStyle风格,代码如下所示:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:DevDiv_AppBar.Resources">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Common/StandardStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="DoneAppBarButtonStyle" TargetType="Button"
BasedOn="{StaticResource AppBarButtonStyle}">
<Setter Property="AutomationProperties.Name" Value="完成"/>
<Setter Property="Content" Value=""/>
</Style>
</ResourceDictionary>
这里有个小插曲,代码中需要添加如下代码,才能够正确运行,否则运行时会出错。[为什么还不太清楚,高手来过招吧][搞明白了,原来DoneAppBarButtonStyle里面有BasedOn="{StaticResource
AppBarButtonStyle}" ,就是说DoneAppBarButtonStyle 继承自AppBarButtonStyle ,AppBarButtonStyle定义了AppBar按钮的默认风格。破船@2012/07/26<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Common/StandardStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
定义了字典文件之后,还需要在App.xaml文件中把该字典文件关联起来,也就是还需要在App.xaml文件中添加如下代码
<ResourceDictionary Source="Resources/MyDictionary.xaml"/>
到这里,我们的AppBar风格自定义就完成了,我们只需要在使用到的地方如同使用系统预定义好的一样即可。如下代码
在第二个栈面板中:<Button x:Name="AppBarHomeButton"
Style="{StaticResource DoneAppBarButtonStyle}"
Click="AppBarButtonClick"/>
3、AppBar中按钮事件的处理至此,我们的控件已经添加完毕,但是还需要响应事件才行。细心的读者可能已经在帖子刚开始给出代码的地方看到这样的语句:Click="AppBarButtonClick"
没错,这就是通过xaml文件给按钮添加事件的处理方法。在这里声明之后,我们还需要到MainPage.xaml.cs文件中把AppBarButtonClick函数实现一下。如下代码,为了说明事件的处理,我只是简单的写了一个函数,并判断了一下发起者private void AppBarButtonClick(object sender, RoutedEventArgs e)
{
if (e.OriginalSource == AppBarDoneButton)
{
}
}
这样我们的程序代码就基本写完了。4、Demo演示与代码下载下面我运行一下程序,并把程序画面和代码附上,供大家参考。
大家可能看到颜色的不同,在这里我说明一下在MainPage.xaml中有如下定义:主布局:Grid Background ="PaleGoldenrod"
AppBar:Grid Background="Firebrick"相信你应该知道如何设置 Grid的颜色了
下载示例代码:
DevDiv_AppBar.rar
分享到:
相关推荐
Flutter AppBar组件是应用的工具栏,是由多个组件组成。下面详细介绍appBar使用方法、TabBar使用方法、去掉头部的appBar、仿美团发现AppBar(可滚动TabBar)
在Windows 8中创建自定义应用工具栏的例子程序
wAppbar:Windows桌面应用程序栏(appbar),基于Nim和wNim Framework
微软官方提供的5个基础示例程序,涵盖了基础语法、数据绑定、界面布局、基础控件、AppBar等内容。
Windows Phone XAML AppBar 控件的例子程序
适用于 Windows 8.1 的 SpliButton 与类似于 Microsoft Weather 应用程序的 AppBars (Top) appbar 一起使用 直接影响控件视觉外观的属性 影响控件行为的属性 ToggleOnParentFocusChange (bool) 选中 (true) 时,在...
win8 的app bar相关,一些对win8系统的app bar简单的操作。
AppBar 布局的使用方式 AppBar的开发标准模板,Created by C.L. Wang
Flutter开发携程App,实现滚动渐变的AppBar,更多技术文章请关注【码农帮派】。使用到Stack布局,NotificationListener监听,MediaQuery.removePadding方法以及Opacity组件实现透明渐变效果。
控件不透明 窗口透明 MFC APPBAR,使用VS做的。
CSDN博文:https://blog.csdn.net/gaoxiaoweiandy/article/details/87907558
material-theme-appbar, 材质主题插件为你的sublime text 启用着色 appbar :这里项目不在积极开发之下。 由于与其他编辑器相比,sublime text 是一个过时的软件,所以请考虑材质主题( 例如 Visual Studio 代码 ) 。...
Coursera_Semana3 Coursera课程(Android应用程序开发(3);第3和第4周); Petagram。-ViewPages,Fragment,RecyclerView,AppBar,Apptools,菜单,ActionView 屏幕快照文件夹(ScreenSHots)已附加从1到6是第3...
Integrate your app into the Windows 8 ecosystem with Contracts and Extensions Walks you through the new Windows 8 navigation system for multi-page apps Minimize code with Data Binding and MVVM design ...
渐变应用栏喜欢材质AppBar? 您要向应用栏添加更多颜色吗? 这是一个gradientAppBar。 它就像普通的AppBar一样工作。 还包括操作,后退按钮,标题。 因此,这只是您的普通AppBar,但要有所不同!屏幕截图入门通过将...
/ *标题:无AppBar的制表符栏目的:无AppBar的制表符栏创建者:Kalpesh Khandla * / = = = Android发布步骤= = = 生成FAT APK-抖动清除-抖动生成apk-发布生成拆分APK-抖动清除-抖动构建apk --split-per-abi --...
主要介绍了Flutter沉浸式状态栏/AppBar导航栏/仿咸鱼底部凸起导航栏效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
应用程序栏由Xamarin.Forms工具栏组成。 应用栏 属性 类型 酒吧高度 双 酒吧背景色 颜色 BarBackgroundImage 图片来源 酒吧背景视图 视图 BarTextColor 颜色 导航图标 图片来源 BackButtonTitle 串 边框颜色 颜色...
7.5 在应用程序中使用ActiveX控件 153 7.6 发布带有ActiveX控件的应用程序 154 7.7 注册ActiveX控件 155 7.8 BlackJack:一个OCX示范程序 155 7.8.1 纸牌 155 7.8.2 游戏 157 7.8.3 调用ActiveX控件的方法 165 7.9 ...