感觉自我表述能力有欠缺,技术也不够硬,所以之后的Windows8应用开发学习札记的文章就偏向于一些我认为较难的地方和重点了多有抱歉。

  上节课是入门,这节课就已经开始进行视图设计了。

  Windows应用的三种常用的数据展示控件:FlipView、ListView和 GridView。

  FlipView是用来显示集合数据的控件,用户可以点击上/下或者左/右按钮实现子窗口间的切换。

  值得一提的是包括后面要介绍的两个控件,这三个均继承自ItemsControl类。但需要注意的是:不要使用FlipView来呈现大型的集合。

  ListView最大的特点是纵向显示数据,故切换到Snap View时一般都用该控件显示。

  GridView则用来横向显示数据。

  

  首先,大家先新建一个项目(在C#中找到Windows应用商店,然后选择GridView控件模版新建),然后在出现的界面中介绍下解决方案管理器中各文件的作用:

  Properties 默认包含:AssemblyInfo.cs(集合信息类)
  References 默认包含:.NET for Windows Store apps和 Windows两个命名空间 Assets Logo.png(大图标)、SmaIILLogo.png(小图 标)、SplashScreen.png(初始屏幕图)、 StoreLogo(用于Windows商店图标)

  Common 默认包含:StandardStyles.xaml(包含XAML样 式)

  App.xaml 应用中全局资源的处理
  App1_Temporar yKey.pfx 项目源证书文件
  MainPage.xaml 默认应用启动主页面
  Package.appxm anifest 用于描述Windows应用包,应用清单文件

  练习一:通过ItemTemplate来调整图标大小。

  提示:打开public GroupedItemsPage.xaml查找ItemsTemplate发现如下代码:

 ItemTemplate="{StaticResource Standard250x250ItemTemplate}"

  通过复制Standard250x250ItemTemplate在StandardStyles中找到如下代码:

   <DataTemplate x:Key="Standard250x250ItemTemplate">
<Grid HorizontalAlignment="Left" Width="2" Height="2">
<Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
<Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
</Border>
<StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}">
<TextBlock Text="{Binding Title}" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextStyle}" Height="" Margin="15,0,15,0"/>
<TextBlock Text="{Binding Subtitle}" Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/>
</StackPanel>
</Grid>
</DataTemplate>

  即可通过修改Width和Height来改变应用界面的图标大小。

    

  练习二:图标默认为先排竖行再排横行,尝试着修改排列顺序。

  

  提示:在GroupedItemsPage.xaml中搜索GroupStyle.Panel,得到如下代码:

<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/>
</ItemsPanelTemplate>
5 </GroupStyle.Panel>

  其中Orientation即表示排列方式,修改即可。以下为一种方案:

<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Orientation="Horizontal" Margin="0,0,80,0"/>
</ItemsPanelTemplate>
5 </GroupStyle.Panel>

  

  

  练习三:修改应用界面应用名称

  提示:在App.xaml中找到如下代码并把DailyExercise20130827改为自己想要的名字即可。

 <x:String x:Key="AppName">DailyExercise20130827</x:String>

  练习四:修改图标图片、背景图片等操作

  提示:图片文件均存在Assets中。

  我的代码(仅提供参考):在App.xaml中添加如下第三行代码

             <x:String x:Key="AppName">Enjoy Yourself</x:String>

             <ImageBrush x:Key="GridImageBrush" ImageSource="/Assets/beijing.jpg" />

  然后到GroupedItemsPage.xaml中在Grid Style中添加Background="{StaticResource GridImageBrush}即可。

  练习五:修改默认图标

  提示:在Package.appxmanifest中设置。

Copyright ©2013 BITED.All rights reserved.

  

BITED-Windows8应用开发学习札记之二:Win8应用常用视图设计的更多相关文章

  1. BITED-Windows8应用开发学习札记之一:Win8应用开发入门

    基于WinRT的Metro应用是我对Windows8的第一印象,简洁方块配以简单色调真的有沁人心脾的美感. 非常幸运,BITED在这个暑假的这个小学期里有幸学习到一门课程:软件工程基础实践,老师邀请了 ...

  2. Java开发学习心得(二):Mybatis和Url路由

    目录 Java开发学习心得(二):Mybatis和Url路由 1.3 Mybatis 2 URL路由 2.1 @RequestMapping 2.2 @PathVariable 2.3 不同的请求类型 ...

  3. iOS 11开发教程(十二)iOS11应用视图始祖——UIView

    iOS 11开发教程(十二)iOS11应用视图始祖——UIView 在Swift中,NSObject是所有类的根类.同样在UIKit框架(UIKit框架为iOS应用程序提供界面对象和控制器)中,也存在 ...

  4. BITED-Windows8应用开发学习札记之四:如何在Win8 应用中实现语义缩放

    语意缩放的意义在于:创新的语意缩放外观,让你的应用随时展现信息可视化的力量.如图表般的Tile,随着数据的不同而变化,让你的页面更富节奏.而所谓的语意缩放就是通过上下文的跳转,帮助我们实现一种更快更便 ...

  5. Dynamic CRM 2013学习笔记(二十九)报表设计:reporting service 报表开发常见问题

    在报表开发过程中,经常会遇到各种各样的问题,比如The report cannot be displayed. (rsProcessingAborted),一点有意义的提示都没有:再就是分页问题,经常 ...

  6. android移动开发学习笔记(二)神奇的Web API

    本次分两个大方向去讲解Web Api,1.如何实现Web Api?2.如何Android端如何调用Web Api?对于Web Api是什么?有什么优缺点?为什么用WebApi而不用Webservice ...

  7. SQL菜鸟学习札记(二)

    五月份一直在写SQL,之后写了一个期末大作业的项目,现在才有时间把之前遇到的各种奇怪的问题整理出来.下一部分札记应该是大作业中使用到的SQL的整理. 一.UPDATE SET语句后面可以并列赋值. 之 ...

  8. Java开发学习(三十二)----Maven多环境配置切换与跳过测试的三种方式

    一.多环境开发 我们平常都是在自己的开发环境进行开发, 当开发完成后,需要把开发的功能部署到测试环境供测试人员进行测试使用, 等测试人员测试通过后,我们会将项目部署到生成环境上线使用. 这个时候就有一 ...

  9. Android开发学习之路-二维码学习

    这个月装逼有点少了,为什么呢,因为去考软件射鸡师了,快到儿童节了,赶紧写篇博纪念一下逝去的青春,唔,请忽略这句话. 二维码其实有很多种,但是我们常见的微信使用的是一种叫做QRCode的二维码,像下面这 ...

随机推荐

  1. guice的基本使用(一)

    guice是google一个轻量级的DI注入框架,现在比较强大了,也与目前流行的struts2.jpa等都有集成了. 先看一个例子: package com.ming.user.test; publi ...

  2. 很实用的js限制不让输入其他字符,只让输入数字和 js生成UUID

    onkeyup="this.value=this.value.replace(/\D/g,'')" js生产UUID var createUUID = (function (uui ...

  3. Android HTTPS(3) IOException: Hostname 解决方案

    Common Problems with Hostname Verification As mentioned at the beginning of this article, there are ...

  4. radio checked不起作用的原因

    <table id="approveTable"> <tr> <td> <input type="radio" nam ...

  5. iOS XMPP Framework 中文概述

    本篇文章翻译XMPP Framework中的Overview of the XMPP Framework部分 介绍 The framework is divided into 2 parts: 1. ...

  6. 微信公共服务平台开发(.Net 的实现)5-------解决access_token过期的问题(转)

    因为access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token改造一下.另外需要说明的是access_token是变化的,有自己的周期,官方解释 ...

  7. R2的版本由来

    给人一杯水,自己先有一桶水.上课.备课,那么备课中就常有一些稀奇古怪的问题. 学生问:SP2和R2是一样的吗? 老师答:不一样,一个是补丁程序,另一个是服务器操作系统. 学生不解:R2如果是操作系统, ...

  8. .net4.0下 解决asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误

    asp.net 2.0 通常解决办法 方案一: 将.aspx文件中的page项添加ValidateRequest="false" ,如下: <%@ Page Validate ...

  9. [Web前端系列之_Firebug_00_序]

    [因] 以前一直把Firebug当做参考他人网站界面结构的工具,看看css,js等,没有深挖.这段时间在项目组里主要充当前台工作,也有空,就准备把前端给精通点,firebug作为入手点. [参考资料] ...

  10. codevs 1228 苹果树

    dfs序+线段树 #include<iostream> #include<cstdio> #include<cstring> #include<algorit ...