WP8 Metro开发

来源 :科技创新导报 | 被引量 : 0次 | 上传用户:sunboy92121
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:Windows 8是微软公司于2012年推出的继Windows7之后的新一代电脑操作系统,采用与Windows Phone 8相同的NT 内核,该操作系统除了具备微软适用于笔记本电脑和台式机平台的传统窗口系统显示方式外,还特别强化适用于触控屏幕的平板电脑设计,使用了新的接口风格Metro,这种应用程序和我们传统看到的Windows应用最大的不同就是它是为触摸屏设备而设计的。
  关键词:Metro 开发模式 窗口和布局
  中图分类号:TP31 文献标识码:A 文章编号:1674-098X(2014)06(b)-0039-02
  在新的开始菜单里,Win8在支持触摸屏的同时,定义了一套在Win8上面的手势语言。Win8为触摸设备提供的触摸键盘,使用体验感觉很好,很灵敏,按下去在屏幕上会有被按的效果。除此之外,Win8还带来了以下的几个新特性:支持ARM * 2;Win8一个账户可以伴随着你在不同的设备上;更加有效的App管理方式;支持多种设备,多种屏幕尺寸;更加社交化,以及和微博无缝整合。
  1 Windows 8 开发模式
  目前Metro app支持三种不同的开发模式:(1)XAML+C#/VB;(2)XAML/DirectX+C++;(3)HTML5+JS+CSS,组成部分Model、View、ViewModel。View是指UI界面。ViewModel是View的抽象,负责View与Model之间信息转换,将View的Command传送到Model。Model是数据访问层。
  2 MVVM(Model-View-ViewModel)
  View与ViewModule连接可以通过下面的方式:Binding Data实现数据的传递。command实现操作的调用,ttachBehavior实现控件加载过程中的操作。View没有大量代码逻辑。结合WPF、Silverlight绑定机制,MVP演变出了MVVM,充分利用了WPF、Silverlight的优势,将大量代码逻辑、状态转到 ViewModel,可以说MVVM是专门为WPF、Silverlight打造的。View绑定到ViewModel,然后执行一些命令在向它请求一个动作。而反过来,ViewModel跟Model通讯,告诉它更新来响应UI。这样便使得为应用构建UI非常的容易。往一个应用程序上贴一个界面越容易,外观设计师就越容易使用Blend来创建一个漂亮的界面。同时,当UI和功能越来越松耦合的时候,功能的可测试性就越来越强。Windows 8中可以启动多个应用并在其中切换,我们没有必要担心降低系统速度或消耗电池电量,因为系统会自动挂起(有时会终止)在后台正在运行的应用。设计良好的应用可以由系统挂起、终止以及重新启动来体现,并且在这过程中看起来该应用一直在运行。
  3 Metro Application原理
  (1)当激活了应用时,无论任何原因,系统都会发送Activated事件;(2)每当用户切换到桌面或其他应用时,系统都会挂起你的应用,系统会发送Suspending事件;(3)每当用户切回到你的应用时,系统就会恢复你应用,系统会发送Resuming事件。
  当用户启动应用程序,该应用在生命周期中可以发生哪些变化呢?(1)运行的应用,可以进行挂起,变成挂起的应用;(2)挂起的应用,可以进行恢复,变成运行的应用;(3)挂起的应用,如果系统内存不足,将直接被干掉。
  在任何桌面应用程序中,窗口都是基本的组成要素,以至于操作系统都根据它命名。尽管Metro提供了导航应用程序的模型,该模型用于创建能够将任务分割到单独页面中的应用程序,但是对于创建应用程序,窗口仍然是这一领域的象征。
  4 窗口
  Window类继承自ContentControl类,这意味着它只能包含当子元素(通常是一个布局容器,如Grid控件),并且可以使用由Background属性设置的画刷绘制背景。通常还可以使用BorderBrush和BorderThickness属性在在窗口周围添加边框,但是 该边框会被添加到窗口框架之内(在客户去边缘周围)。可以通过将WindowStyle属性设置为None完全移除窗口框架,从而可以创建一个完全定制的窗口。此外Window类还添加了不少部分成员,任何一个Windows编程人员都会熟悉这些成员。最明显的是与外观相关的属性,使用这些属性可以改变窗口客户区部分的显示方式。Application类提供了用于访问其他窗口的两个工具:MainWindow和Windows属性。如果希望使用更灵活的方式跟踪窗口,可以在Applocation类中添加静态属性。窗口交互是指获取其他窗口的引用。作为通信规则,应当竟可能的减少窗口之间的交互需要,因为这会没有必要的增加代码的复杂性,如果确实需要根据一个窗口的动作修改另一个窗口的控件,可以在目标窗口中添加一个方法,从而使窗口的接口变得简单易行。对于时髦的客户端应用程序,经常会使用形状不规则的窗口,且对于Metro应用程序使用不规则窗口会更常见。在Metro中创建和使用基本形状的窗口是非常容易的,然而创建精致的、具有专业外观的窗口需要完成更多工作,并且很可能需要由优秀的图形设计人员创建轮廓并设计背景插图。
  5 布局
  Windows 8为开发人员提供丰富的布局控件,以达到应用布局设计需求。其中包括:* Grid、Canvas、StackPanel、WrapGrid、VariableSized WrapGrid、Virtualizing StackPanel以上布局控件皆派生自Panel类,而Panel类可以装载不同类型的控件作为子控件。Grid是类似于HTML表格的一种布局控件,由于其灵活性高,所以在应用设计中经常被使用到。一个Grid控件包含一个Row(行)和Column(列)的集合。开发人员可以将不同的对象控件布置在不同的行列中,达到位置控制的效果。   6 事件与命令
  刚开始接触Metro时,可能会在自己并不知晓的情况下就用到了路由事件。例如,当在Visual Studio设计器中向窗口添加一个按钮,并将其命名为myButton,然后双击该按钮时,Click事件将挂接在XAML标记之内,它的事件处理程序会添加到Window类的代码隐藏中。这种感觉与在 Windows 窗体和ASP.NET中挂接事件并无二样。实际上,它比较接近ASP.NET的代码编写模型,但更类似Windows窗体的运行时模型。
  路由事件概述。
  7 路由事件
  气泡事件最为常见,它表示事件从源元素扩散(传播)到可视树,直到它被处理或到达根元素。这样就可以针对源元素的上方层级对象处理事件。例如,可向嵌入的Grid元素附加一个Button.Click处理程序,而不是直接将其附加到按钮本身。气泡事件有指示其操作的名称(例如,MouseDown)。隧道事件采用另一种方式,从根元素开始,向下遍历元素树,直到被处理或到达事件的源元素。这样上游元素就可以在事件到达源元素之前先行截取并进行处理。根据命名惯例,隧道事件带有前缀Preview(例如PreviewMouseDown)。直接事件类似.NET Framework中的正常事件。该事件唯一可能的处理程序是与其挂接的委托。通常,如果为特殊事件定义了隧道事件,就会有相应的气泡事件。在这种情况下,隧道事件先触发,从根元素开始,下行至源元素,查找处理程序。一旦它被处理或到达源元素,即会触发气泡事件,从源元素上行,查找处理程序。气泡或隧道事件不会仅因调用事件处理程序而停止路由。如果想中止隧道或气泡进程,可使用传递的事件参数在事件处理程序中将事件标记为已处理。一旦的处理程序将事件标记为已处理,该事件便不会传给任何其他处理程序。实际上,事件路由仍在继续起作用,可利用UIElement.AddHandler的替换方法在代码中显式挂接事件处理程序,该方法有一个额外的标记,可以有效指出“即使事件被标记为已处理也可调用我”。为了让元素能处理在不同元素中声明的事件,WPF支持附加事件。附加事件也是路由事件,它支持元素 XAML 形式的挂接,而非声明事件所用的类型。例如,如果想要Grid侦听采用气泡方式通过的Button.Click事件,仅需按如下所示进行挂接即可。
  8 命令系统的基本元素
  命令(Command):实现了ICommand接口的类,经常使用的有RoutedCommand类。命令源:是命令的发送者,是实现了ICommandSource接口的类,大部分界面的控件都实现了这个接口,Button,MenuItem等等。命令目标:命令的接收者,命令目标是实现了IInputElement接口的类。命令关联:负责一些逻辑与命令关联起来,比如判断命令是否可以执行,以及执行完毕后做一些处理。四个命令元素之间的关系:在Windows Store app开发中,数据绑定非常的重要,它提供了一个简单的方法,使我们的程序可以很方便的显示数据并与数据进行交互。数据绑定:数据绑定在UI控件中显示数据是非常重要的一部分内容。当任意一个UI控件使用了绑定,那么它将会显示出相应的数据。当然,很重要的一个因素就是当绑定的数据发生了改变,此时UI控件显示的内容就会自动的改变。同样,当用户在UI控件上做了改变,这些变动的数据也会被自动保存到数据对象中。
  参考文献
  [1] 欧运娟.windows系统管理与应用[M].北京:人民邮电出版社,2014.
  [2] Jeremy Likness.windows8应用开发[M].北京:人民邮电出版社,2014.
其他文献
2016年6月,老朱遇到前来走访的金峰乡纪委书记吴新君,抱着试试看的心态,向吴书记倒了“苦水”。  5000元押金为何不退?工作不到位,还是另有隐情?吴新君和乡纪委的工作人员提高警觉,将老朱的诉求列入重点核查范围。经过一番仔细调查,终于发现村会计朱福银挪用部分村民建房押金的问题。最终,金峰乡给予朱福银留党察看一年处分,并免去村会计职务,村民们也很快全额领回了建房押金。  不坐等线索上门,主动深入到
摘 要:为了解决现阶段高速公路的监控问题,进行图像传输方案的更新是必要的的。这就需要进行高速公路图像视频传输业务提醒的健全,满足现阶段模拟传输及其数字非压缩传输模块的协调,更好的顺应当下网络数字化视频传输系统的工作需要,保证现阶段的视频传输工作的进行。  关键词:传输方式 数字化编码 总结模拟视频 数字非压缩网络  中图分类号:TN919.8文献标识码:A文章编号:1674-098X(2014)0
郑小林,博士生导师,浙江大学人工智能研究所副所长。基于大数据和人工智能技术,郑小林研发了金融大数据管理平台,积累1万多家理财投资平台数据,4万多家关联企业信息,100多万
期刊
在人类历史漫长的发展和进步过程中,始终存在着自由与理性的尖锐对立和斗争,二者的冲突把人类带入一次又一次的异化绝境,并使人类力图冲破这绝境开始一轮又一轮新的探索和追
记得第一次来到淳安,投身于这面迷人的千岛湖,是在近三十年前.一大早就从杭州乘长途车出发了,直到太阳西斜的黄昏时分,长途车才摇摇晃晃地驶抵了淳安汽车站.揉着酸痠的腰背,
中国共产党历来高度重视知识分子。我国广大知识分子是社会的精英、国家的栋梁、人民的骄傲,也是国家的宝贵财富。我国知识分子历来有浓厚的家国情怀,有强烈的社会责任感,重
六十年来,系统科学大致经历了系统信息控制理论奠基、自组织理论攻关、系统哲学和广义信息探索、系统科学范式建构尝试这些重要阶段。系统科学不仅开创了科学技术新时代,而且
针对空域容量评估工作对仿真航班计划的要求,以航班计划的流量分布统计特征为约束条件,建立数学模型,采用随机模拟法作为求解该问题的方法。经过多次仿真,并对仿真结果进行分
苏轼与江苏士人有较特殊的关系,除与孙洙、蒋之奇、单锡、单锷、邵迎、苏舜举、颜太初及其子颜复、郏亶、张天骥、秦观、张耒等江苏士人有或深或浅的交往外,还同丁宝臣、徐积、
宁围街道地处萧山区北大门,西接滨江区,北临钱塘江。80多年前,这里是一片海涂,宁围先辈围海造田,为其崛起奠定了基石。2014年,宁围撤镇设街。而目前,街道区域范围内有三大开发主体,萧