Windows8 Metro应用开发之C#(1)- 项目模板(Project Templates)

新建模板

打开Visual Studio 11,新建项目 -> 展开Visual C# -> 点击Windows Metro Style,我们可以看到微软在C#开发Windows Metro应用程序中提供了三种项目模板。

在Blend中我们同样也可以看到:

这三种模板分别可以为我们快速创建不同风格的应用程序。

拆分应用程序(Split Application):在已分组的项之间导航的Windows Metro风格应用程序的两页项目。第一页允许组选择,而第二页显示项列表以及选定项的详细信息。

空白应用程序(Blank Application):未预定义控件或布局的Windows Metro风格应用程序的单页项目。

网格应用程序(Grid Application):在多个项组之间导航的Windows Metro风格应用程序的多页项目。专用页显示组合项的详细信息。

实际上三种模板的项目结构大致一样,只是预定义了一些控件和布局,所以即使我创建了空白应用程序,在下面我也可以右击解决方案 -> 添加 –> 新建项 来自己搭建其他样式模板。

好了,这里就不多说了,下面以空白应用程序模板为例,进一步了解。

项目结构

选择项目模板后,Visual Studio会自动生成预定义的项目结构。

从上面图中可以看到,项目由Assets文件夹、Common 文件夹、App.xaml页、BlankPage.xaml、BlankApplication_TemporaryKey.pfx和Package.appxmanifest组成。

如果你有Silverlight或者WPF项目经验,你会发现相比Silverlight/WPF项目,项目中多了一个Common文件夹,包含一些类和资源,一个BlankApplication_TemporaryKey.pfx文件和Package.appxmanifest文件。

Ø BlankApplication_TemporaryKey.pfx ----- 微软代码签名证书

Ø Package.appxmanifest------ 包含描述你的应用的元数据,包括显示名称、说明、徽标和功能。

Metro 风格应用在安全容器中运行,对文件系统、网络资源和硬件具有有限的访问权限。 无论用户何时从 Windows 应用商店安装应用,Windows 都会查看文件中的元数据Package.appxmanifest以确定应用需要执行哪些功能。例如,某个应用可能需要访问 Internet 中的数据、用户文档库中的文档,或用户的摄像头和麦克风。当应用安装完成后,它会向用户显示所需的功能,而用户必须授予相应的权限才能让它访问这些资源。如果应用没有请求并接收所需要的某个资源的访问权限,则当用户运行它时,系统将禁止其访问该资源。

Ø Common文件夹------ 包含了一些类和资源,给项目和模板项添加依赖。

下面看看文件清单:

  

文件名

描述

StandardStyles.xaml

预定义了样式和模板供项目和模板项实用。

Readme.txt

信息描述

BindableBase.cs

这是一个基类,提供了INotifyPropertyChanged的实现。

BooleanNegationConverter.cs

在XAML中使用的转换器。转换一个布尔值。

BooleanToVisibilityConverter.cs

在XAML中使用的转换器。转换到可见状态的布尔值。

LayoutAwarePage .cs

具有能够适应不同布局和视图的页面功能的基类。主要是用来监听视图状态更改事件和页面Visual State切换的响应。你可以重写此行为,提供的自定义Visual State名称仍然使用在这个文件中提供的事件代码。例如:用户有时需要显示不同的UI时(如用户登录与注销),你可以使用两个不同的Visual State名称对应不同的UI,但仍然使用在这个文件中提供的相同事件代码。

RichTextColumns.cs

为网格应用程序定义了Grid文本样式及布局。

仔细查看Common里的文件会发现,大多为项目模板提供的基类都是继承了Windows提供的基类并实现了一些常用功能。
public abstract class BindableBase : INotifyPropertyChanged
{

}
public class LayoutAwarePage : Page
{

}
public sealed class BooleanNegationConverter : IValueConverter
{

}
public sealed class BooleanToVisibilityConverter : IValueConverter
{

}
public sealed class RichTextColumns : Panel
{
}

所以,如果你希望快速开发或没有现有框架的话,可以直接使用Windows Metro为你创建的项目模板,当然如果你希望重写架构的话,也可以将项目中自动生成的类与资源删除,自己重写实现以上功能。

源码下载

posted on 2012-03-11 13:12 李明杨 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lmyhao/archive/2012/03/11/2387413.html

Windows8 Metro应用开发之C#(1)- 项目模板(Project Templates)相关推荐

  1. Windows8 Metro应用开发之C#(3)- 数据控件ListView、GridView、FlipView

    Windows8 Metro应用开发之C#(3)- 数据控件ListView.GridView.FlipView 介绍: 本节主要对Windows 8 中对于Metro应用开发提供的数据控件ListV ...

  2. Android开发之将AndroidX项目改为非androidX(android.v7.support)的方法

    老套路上图:看看我目前AndroidX依赖的库文件 修改方法: 1.打开gradle.properties文件将文件里面的下面两个属性 android.useAndroidX=true android ...

  3. Oracle Proc开发之Makefile的编写模板

    Oracle的数据库开发中需要用到Proc,Proc就是嵌入式C 本文主要介绍的是Oracle数据库开发,Linux下Proc的Makefile示例: 1 .SUFFIXES: .c .o 2 3 C ...

  4. Android开发之Git提交Template模板配置

    1.首先在桌面任意新建一个txt文件: 说明:git模板自己任意配置即可 然后将模板放入任意文件夹防止误删除: 然后使用git命令设置模板 右击桌面空白处打开git窗口: 输入命令: git conf ...

  5. 微信小程序开发之formId使用(模板消息)

    基于微信小程序的模板消息 下发条件:用户本人在微信体系内与页面有交互行为后触发 1. 使用说明 1.1 获取模板id 登录https://mp.weixin.qq.com获取模板,如果没有合适的模板, ...

  6. Android开发之旅:HelloWorld项目的目录结构

    引言 前面Android开发之旅:环境搭建及HelloWorld,我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Androi ...

  7. SPA项目开发之CRUD+表单验证

    目录 一.SPA项目开发之表单验证 二.SPA项目开发之CRUD 一.SPA项目开发之表单验证          我们做项目的都关乎到增删改查的功能,在进行增删改查功能之前,我们必须有一个表单验证. ...

  8. 电影天堂APP项目开发之Python爬虫篇,共18课时/5时33分

    电影天堂APP项目开发之Python爬虫篇,共18课时/5时33分,是电影天堂APP项目开发课程的第一篇章,讲解使用requests和bs4库,爬取和解析电影天堂网站数据,并讲数据保存到SQLite数 ...

  9. Qt开发之路39---Qt pro项目检测编译器版本(64位或32位)

    方案一:利用QT_ARCH contains(QT_ARCH, x86_64){message("64-bit") }else{message("32-bit" ...

最新文章

  1. vba动态二维数组_VBA实战技巧05: 动态调整数组以存储所需数据
  2. 如何编写更少,更好的代码,或Project Lombok
  3. 面试基操:MQ怎么保障消息可靠性?
  4. ASP.NET 动态加载WebService功能
  5. 60个Java练手项目案例,看了让你茅塞顿开~
  6. Flutter基础七:Sliver,设置一些样式
  7. Bigder:53/100 真香免费网站!在线练习SQL\Python\Shell像游戏通关一样刷题
  8. 4.PMAC下位机-PMAC安装参数设置
  9. 【第25章】移动应用安全需求分析与安全保护工程(软考:信息安全工程师) -- 学习笔记
  10. 关于迅盘Turbo Memory的ReadyDrive功能被禁用的思考
  11. CSS:CSS层叠样式表的概述
  12. 点云编码是计算机视觉吗,本周新出开源计算机视觉代码汇总(含图像超分辨、视频目标分割、行人重识别、点云识别等)...
  13. arcgis注册postgresql失败。postgres be sure the databse client software is installed and configured correc
  14. 梅花香自创新来|众享比特连获2020上海区块链年度盛典三项大奖
  15. c语言习题---(循环语句)
  16. Ubuntu录屏工具
  17. 计算机网络--应用层
  18. MAC 卸载软件提示已锁定
  19. 0329 复利计算器5.0 Juint单元测试 组员 254列志华 253韩麒麟
  20. [附源码]java毕业设计中学学生学籍管理

热门文章

  1. 微信小程序数据拼接_微信小程序使用原生WebSokcet实现断线重连及数据拼接
  2. ionic4 组件的使用(二)
  3. 计算机网络系统是弱电工程,弱电工程包括哪些类型?常见的问题又有哪些?
  4. for i in range什么意思_python迭代和解析——range、map函数
  5. c语言变量名s_i使其随i变化,动态规划I(含细c语言代码).ppt
  6. 图层上下_「只要功夫深 不用关键帧」之图层序号的玩法
  7. java监听文件改名字_java监听文件目录的改变
  8. 64位 iee754_IEEE754浮点表示法详解
  9. 计算机识别键盘流程,通过计算机视觉的方式识别并判断键盘输入
  10. 计划任务执行 php代码,php实现Windows任务计划定时执行的代码以及扩展(图)