试水Windows 8 Metro application(xaml)及我的一些理解

📅 2026/7/4 15:50:09
试水Windows 8 Metro application(xaml)及我的一些理解
安装好之后可以看到下面这样的界面,这就是一再被说到Metro界面风格很显然界面是第一个重大的变化。但实际上这个界面并不是Windows 8的首创这个界面最早是出现在Zune中然后出现在Windows Phone 7中现在只是将它的使用范围进一步扩大微软的目标是希望以后的桌面电脑、平板电脑、手机都使用这种风格的界面。【备注】据说前不久Metro这种界面设计的风格正式申请了专利而且获得了认证http://appft.uspto.gov/netacgi/nph-Parser?Sect1PTO1Sect2HITOFFdPG01p1u%2Fnetahtml%2FPTO%2Fsrchnum.htmlr1fGl50s1%2220110202834%22.PGNR.OSDN/20110202834RSDN/20110202834这种界面无疑是很适合触摸式的操作的而触摸式是一个趋势这无可阻挡所以Metro的出现时势所必然。然而之所以可以单独申请专利是因为它又区别于iPhone或者Android 的那种界面仍然是一排一排的按钮我个人感觉还是不错的Metro的这种样式给用户的信息量会多一些。不过话说回来Windows 8作为第一个使用Metro的操作系统为了保证向后兼容性是不可能只提供Metro这种样式的界面的它仍然保留了传统的桌面。这个界面其实跟Windows 7很像但也是有很多改进的。这里就先不做太多赘述也就是说至少目前可以肯定的是Windows 8将支持两种风格的应用程序1. 传统的应用程序通过exe等形式发布用户可以自己复制或者下载然后安装2. Metro应用程序这些应用程序是必须通过Windows Store来发布并且传播的用户也只能通过这个Store去下载和安装【备注】我们很多人都知道Apple Store微软在手机领域也有一个Windows Phone Marketplace 以后还将有一个统一的Windows Store(http://msdn.microsoft.com/en-us/windows/apps/br216180?lcid1033)从第二点来看我觉得不会有太多人反对Windows 8以及Metro。从各方面的声音来看大家都提到一个字Opportunity 机会是的对于Windows平台的厂商微软最终用户还有开发商以及开发人员这意味着新的机会。在BUILD大会上微软的高层除了演示了各种客户端的效果之后其实还着重在强调云的概念。这是自然而然的Windows 8如果想要华丽转身成为桌面电脑平板电脑手机的统一的系统绝不仅仅是客户端的事情。微软的Windows Azure以及相关配套的一些服务在很早之前就为此在做准备了。典型的问题就是这么多Application其实到时候都是统一托管在Windows Azure平台上。另外值得一说的是Windows 8登录就直接继承了Windows Live ID,可以期待以后只要有Windows Live ID在不同设备上就能很自然地同步资源或者进行一致性的操作。好的那么回到开发人员的视角既然Metro势在必行那么我们有什么样的机遇和挑战呢这次BUILD大会前后就一直有很多朋友在议论说微软要抛弃Silverlight等等。这个说法其实不准确。准确地说是Silverlight无法在Metro样式的应用程序中运行即便是Metro的IE也是不接受Silverlight的当然它同时也不接受Flash。它不接受任何插件它为HTML 5而来。是的你没有听错在Windows 8中确实有两个IE一个是Metro版本的一个是桌面版本的。实际上微软正在开发Metro Office我实在想看看那时怎么样一个Office下面这个是Metro版本的IE下面这个是桌面版的IE与Windows 7里面的IE 9没有太大的区别虽然这个版本叫IE 10.这个IE 里面当然是继续支持Silverlight的其实这里有一句潜台词大家可以试想一下虽然说Windows 8是希望覆盖桌面电脑、平板电脑、手机我相信这个目标也的确可以实现但相比较桌面电脑而言平板电脑和手机其实是没有桌面的概念的所以我可以预见在平板电脑和手机里面就肯定只有Metro样式的应用程序在它们上面是不支持Silverlight的。其实我自己做过基于Silverlight的项目我的体会和很多人都相似我没有寄太大希望它能用在internet上面相反Silverlight目前在一些企业内部项目中倒还是用得不错。因为Silverlight作为一种技术有它适用的地方我们不能期望它能用在所有地方。但是一个很大的好消息是拥有Silverlight或者WPF开发经验的开发人员将能够在Metro应用程序开发中占得先机。为什么这么说呢因为Metro应用程序支持三种编写方式1. javascript2. xaml C#/VB.NET3. C是的你看到有XAML我们对这个不是很熟悉了吗如果是你的经验可以得到复用。我下面就用这种方式来创建我的第一个应用程序大家可以看看其实也不是特别难。【备注】这里的XAML与WPF或者Silverlight从本质上是一样的但是也有些不一样本文不会做太多深入的展开。在下载得到的Windows Developer Preview这个系统中已经预先安装好了Visual Studio 11 Express估计正式版该叫Visual Studio 2012吧虽然这名儿实在让人有点瘆得慌目前这个版本只有下面几个模板我参照微软提供的例子做了一个简单的应用程序体验了一下123456789101112131415161718192021222324252627282930UserControlx:ClassTheFirstMetroApplication.MainPagexmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006mc:Ignorabledd:DesignHeight768 d:DesignWidth1366xmlns:localusing:TheFirstMetroApplication ScrollViewerStackPanelTextBlockText{Binding Title} FontSize30 Margin10/TextBlockItemsControlItemsSource{Binding Items}ItemsControl.ItemTemplateDataTemplateStackPanelMargin50,0,0,10HyperlinkButtonContent{Binding Title} FontSize20/HyperlinkButtonTextBlockText{Binding PubDate}/TextBlock/StackPanel/DataTemplate/ItemsControl.ItemTemplate/ItemsControl/StackPanel/ScrollViewer/UserControl