LMY

IOS Android C# Python Silverlight Flex HTML5 WCF GIS .NET.....现已博客已移至http://blog.512z.com

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

新建模板

打开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.xamlBlankApplication_TemporaryKey.pfxPackage.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  李明杨  阅读(3862)  评论(5编辑  收藏  举报