这节的议程就是——添加appbar

appbar是出现在哪儿了,出现在屏幕的底部。他能使用户能用手势或者使用鼠标操作程序。metro UI 重点是在主要的控件使用许多控件,使其用户使用win8电脑更加的方便。而appBar使其用户体验更好。在这节中,我将告诉你如何定义和填充app Bar。

在界面的顶部有一个类似的控件,叫做navbar。这使其程序中,能够互相导航。 至于如何创建 使用navbar ,我将在后续文章详细的介绍。

定义一个appBar

我将用最简单的方法创建一个AppBar.下面源代码就是创建一个appBar:

 1 <Page2   x:Class="MetroGrocer.Pages.ListPage"3   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"4   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"5   xmlns:local="using:MetroGrocer.Pages"6   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"7   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"8   mc:Ignorable="d">9   <Grid Background="{StaticResource AppBackgroundColor}">
10     <Grid.RowDefinitions>
11       <RowDefinition/>
12       <RowDefinition/>
13     </Grid.RowDefinitions>
14     <Grid.ColumnDefinitions>
15       <ColumnDefinition/>
16       <ColumnDefinition/>
17     </Grid.ColumnDefinitions>
18     <StackPanel Grid.RowSpan="2">
19       <TextBlock Style="{StaticResource HeaderTextStyle}" Margin="10"
20             Text="Grocery List"/>
21       <ListView x:Name="groceryList" Grid.RowSpan="2"
22         ItemsSource="{Binding GroceryList}"
23         ItemTemplate="{StaticResource GroceryListItemTemplate}"
24         SelectionChanged="ListSelectionChanged" />
25     </StackPanel>
26     <StackPanel Orientation="Vertical" Grid.Column="1">
27       <TextBlock Style="{StaticResource HeaderTextStyle}" Margin="10"
28             Text="Item Detail"/>
29       <Frame x:Name="ItemDetailFrame"/>
30     </StackPanel>
31     <StackPanel Orientation="Vertical" Grid.Column="1" Grid.Row="1">
32       <TextBlock Style="{StaticResource HeaderTextStyle}" Margin="10"
33             Text="Store Detail"/>
34     </StackPanel>
35   </Grid>
36      <!--一个appbar控件定义的源代码-->
37   <Page.BottomAppBar>
38     <AppBar>
39       <Grid>
40           <!--Column 的定义-->
41         <Grid.ColumnDefinitions>
42           <ColumnDefinition />
43           <ColumnDefinition />
44         </Grid.ColumnDefinitions>
45          <!--垂直的显示-->
46         <StackPanel Orientation="Horizontal" Grid.Column="0"
47               HorizontalAlignment="Left">
48             <!--AppBar Button 控件 AppBarButtonClick 事件 -->
49           <Button x:Name="AppBarDoneButton"
50               Style="{StaticResource DoneAppBarButtonStyle}"
51               IsEnabled="false"
52               Click="AppBarButtonClick"/>
53         </StackPanel>
54         <StackPanel Orientation="Horizontal" Grid.Column="1"
55               HorizontalAlignment="Right">
56           <Button x:Name="AppBarAddButton"
57               Style="{StaticResource AddAppBarButtonStyle}"
58               AutomationProperties.Name="New Item"
59               Click="AppBarButtonClick"/>
60           <Button x:Name="AppBarStoresButton"
61               Style="{StaticResource StoresAppBarButton}"
62               Click="AppBarButtonClick"/>
63           <Button x:Name="AppBarZipButton"
64               Style="{StaticResource HomeAppBarButtonStyle}"
65               AutomationProperties.Name="Zip Code"
66               Click="AppBarButtonClick"/>
67         </StackPanel>
68       </Grid>
69     </AppBar>
70   </Page.BottomAppBar>
71 </Page>

为了创建appBar,我不得不创建一个appBar控件。因此,这创造appbar及其内容和属性包含了bottom Bar.

你可以创建一个通过类似方法在底部创建一个NavBar.

appbar工具条包含buttons按钮,这么做的规定是有按钮, 当前选择的显示在appBar左边,无选择的项目显示在右边。(也就是说,在win8的Consumer Preview版本中,这个用户体验的原则不完全,这将会正式版本会改变这个用户体验的原则)。

接下来的篇幅,我将会在AppBar 控件中添加Grid布局控件。这个Grid控件有1行2列。每列有一个stackpanel。 在appBar添加Button有两种方法。你可以选择在standardstyles.xaml定义,或者直接添加。

如何添加appBarButton,我将会在下面的篇幅中介绍。

手把手玩转win8开发系列课程(14)相关推荐

  1. 手把手玩转win8开发系列课程(2)

    对win8开发,上一节我们对win8进行了简单的介绍,这一节我们来瞧一瞧他的开发环境搭建. 前奏. 这里所讲的win8开发,主要是指Windows8 app store 上开发,及metro ui或叫 ...

  2. 手把手玩转win8开发系列课程(11)

    运行程序 这节的议程,我觉得很简单--运行程序 在vs界面布局的页面都是静态,真正让项目运行起来才是动态的了.只有使其运行起来,这样xaml与C#合二为一,以一个真正的程序显示出来.你可以选择调试菜单 ...

  3. 手把手玩转win8开发系列课程(18)

    这节,加入弹出对话框 弹出对话框 这个appBar button能起作用类额 ,他处理的源代码是直接放在Click event里面中.大多数的buttons操作更需要一些额外的用户体验,因此我们使用f ...

  4. 手把手玩转win8开发系列课程(22)

    今天的议程,有三个①展示弹出对话框②创建更复杂的控件③并为复杂的控件赋值 (1)展示弹出对话框 上节,我们已经写好了这个对话框,并且已经引入了项目中去了,那我们就有必要展示了. 当用户点击了这个按钮以 ...

  5. 【预告】1月6日下午14:30 CLR开发系列课程(3):COM Interop基础 (Level 300)

    1月6日下午14:30我将在MSDN中文网络广播中主讲.NET中COM和COM Interop的相关基础知识.有兴趣的朋友可以通过下面的链接登记并收听此次网络广播:  公共语言运行库(CLR)开发系列 ...

  6. 基于WebMatrix的轻量级Web开发系列课程

    基于WebMatrix的轻量级Web开发系列课程(10): WebMatrix与ASP.NET MVC WebMatrix除了提供了默认的编程模型以外,也对ASP.NET MVC做出了很好的支持,但是 ...

  7. 浅析云平台底层架构 进行云原生应用开发 系列课程-薛海涛-专题视频课程

    浅析云平台底层架构 进行云原生应用开发 系列课程-2892人已学习 课程介绍         如何依托Bluemix的PaaS服务,开发云原生应用,并深入的讲解cloudfoundry app生命周期 ...

  8. 循序渐进学.Net Core Web Api开发系列【14】:异常处理

    循序渐进学.Net Core Web Api开发系列[14]:异常处理 参考文章: (1)循序渐进学.Net Core Web Api开发系列[14]:异常处理 (2)https://www.cnbl ...

  9. 云开发系列课程让你从入门到精通快速上手Serverless和云开发技术

    简介:云开发系列课程主要介绍了从入门到精通快速上手Serverless和云开发技术.学习内容涵盖云开发协同.云函数.云数据库.多媒体托管.前后端一体化框架等Serverless Web开发必备知识.希 ...

最新文章

  1. 计算机考研逻辑学,管综专硕:走出不考逻辑学专业知识的误区
  2. php wget,Linux_Linux下载工具wget和axel简介,Wget Wget是一个十分常用命令 - phpStudy
  3. 【Python-ML】SKlearn库原型聚类KMeans
  4. Happy Matt Friends(HDU5119 + dp)
  5. C/C++预处理宏的总结
  6. 前端学习(3325):Mdn说闭包
  7. 【转】extern “C“以及__declspec(dllexport) 讲解和def文件dll导出方法
  8. 很详细的硬盘基础知识
  9. linux docker自动启动,linux – Cron作业不能在Docker容器内自动运行
  10. Azkaban流2.0
  11. 《MYSQL必知必会》—3~9.使用MySQL、检索数据列、排序检索数据列、过滤数据(WHERE子句、组合WHERE子句、通配符、正则表达式)
  12. 词法分析之LED文件批量生成
  13. 如何解决DMS的个人数据隐私问题?ToF技术路线在路上
  14. Python实现统一社会信用代码校验(GB32100-2015)
  15. 在Android上修改读取IMEI码的方法
  16. C: integer overflow,隐式类型转换/整数加法溢出 解决方法示例;check_add_overflow;__builtin_add_overflow
  17. TransE模型的python代码实现
  18. 融资150万,用户超过1500万,“护眼宝”要如何完成从工具到平台的转变?
  19. 飞蛾逐月优化算法(Matlab实现)
  20. 前端css 页面高斯模糊效果

热门文章

  1. Myeclipse中添加XFire插件支持
  2. 希尔排序java代码_希尔排序及希尔排序java代码
  3. python latex显示不出来_10 个加速Python数据分析的简单的小技巧
  4. ubuntu vscode_17. ubuntu设为服务器+vscode远程开发
  5. C++为什么空格无法输出_那些C/C++程序员该具备的32个编程修养习惯!
  6. python上传本地文件到远程hdfs_Python之——自动上传本地log文件到HDFS(基于Hadoop 2.5.2)...
  7. linux中更改用户密码_如何在Linux中更改用户密码
  8. 亚马逊CloudFront
  9. Python SciPy教程
  10. Java中的Collections类– java.util.Collections