无锡尚沃生物科技有限公司开发了应用于呼吸系统检测仪器“纳库仑一氧化氮分析仪”,产品在投入市场后,发现儿童在使用仪器时与成人有很大的不同,存在不配合性、数据采集时间不同等情况。企业急需一套能够被医疗兼容,又能够让不同年龄段的儿童适用的软件。根据企业提出的相关业务需求,并且为配合医疗仪器的使用,开发制作的侧重点在于开发出一些适合于儿童,并带有简单游戏性质的故事情节的游戏软件。为此,我们选择了Visual Studio 2010下的WPF(Windows PresentaTIon FoundaTIon)技术。本文对WPF以及WPF在项目中的实际运用进行了介绍。
1、WPF体系架构及特点
WPF的全称是Windows PresentaTIon FoundaTIon,是未来十年里Windows平台GUI开发的最主要的技术之一。它是微软开发的一款基于.NET(目前最新版本为.NET Framework 4.0)平台的最新的软件界面显示系统。为用户界面、文档和多媒体等等,提供了统一的描述和操作方法。而相对于以往的通用编程方式GDI(Graphics Device Interface),这个已经应用于十多年的技术在.NET框架中已经被微软进行了多次的扩充,但是对它的种种扩充已经不能很好的满足当前软件开发中对越来越复杂、越来越趋向于完美的软件界面的需求,为了在完成相同界面时能够达到更好的效果,同时也为了能够满足下一代操作系统的兼容。为此,发布了这一新的程序界面开发技术。
1.1 WPF体系架构
WPF主要是由Presentation Framework、Presentation Core和mil core三层组件构成,它们是WPF的子系统。其中Presentation Framework、Presentation Core这两者是托管组件,而mil core却是非托管组件。而托管组件Presentation Core提供了像事件处理、布局等一系列的功能。在组件Presentation Core提供的基本功能上,组件Presentation Framework实现了WPF的各种外观,例如图像效果的实现、按钮控件的实现等。而非托管的mil core是以非托管代码来编写的,其目的是实现与DirectX的交互,从而来提高效率。体系架构中的User32、DirectX和Kernel是Windows子系统。如WPF应用程序运行过程图1所示。
1.2 XAML语言
XAML是eXtensible Application Markup Language缩写,名为可扩展应用程序标记语言。从名称可以看出它是一种标记语言,也就意味着它具有其他标记语言所具有的诸多特点。 XAML是微软创建的一款新的描述性语言用来构建应用程序用户界面,即用来编写WPF(Windows Presentation Foundation) 的应用程序。XAML引入了XML中的名字空间、属性等多个元素,即XAML是基于XML的。并且它和XML的使用方式很接近,所以对XAML来说它本身就是一个很好的XML文档。
在以往的程序编写中,我们常常为使内部数据与界面很好的联系在一起而大伤脑筋,而WPF提供了数据绑定这一有效的方法,从而很好的解决了这一难题。在XAML中使用数据绑定,而使用数据绑定的关键就是去创建System.Windows.Data.Binding这样一个实例对象。当然,该对象也可以在C#中被创建。数据绑定其实是使界面显示的数据值与内部数据值保持相同,而数据绑定这一功能的使用,使得我们项目组的开发人员在很大程度上提高项目开发工作的效率。
1.3 Microsoft Expression Blend
Microsoft Expression Blend是一个全新的、全功能的专业设计工具,用于创造基于Microsoft Windows平台的易于使用且丰富的应用界面。使用它的首要和最终目的是作为一种可应用于WPF的设计界面工具。Microsoft Visual Studio 可以与Microsoft Expression Blend 完美的相结合在一起使用.Expression Blend 自动生成 WPF应用程序,也就是说,所显示的界面设计都可以由XAML代码来表示。当然,也可以将可扩展应用程序标记语言(XAML)导入到Expression Blend设计界面中。
2、WPF应用程序在实际开发项目中的运用
基于WPF的特点以及相关技术,本文创建了医疗辅助系统软件项目。下面介绍利用Microsoft Expression Blend创建医疗辅助系统应用程序的基本过程。
(1)打开Microsoft Expression Blend,并新建名为Balloon的项目。
(2)我们进入了Microsoft Expression Blend的工作区,打开工具箱,添加背景(backimage)图片、气球(balloonimage)图片、滑动轴(silder)控件、提示使用者检测失败的文本(txbfailed)控件和
成功的文本(txtSucessed)控件、移动路径([path])、设置下拉菜单(MenuItem)、设置下拉菜单下的起始无效时间(Startinvalid)控件和成功时间(Succeedtimer)控件、开始按钮(btnStart)控件等。初始状态下令文本txbfailed控件可见,设计应用程序界面。
(3)Microsoft Expression Blend将自动生成 Windows Presentation Foundation (WPF)应用程序,是由 XA代码来表示的。在成功的添加诸多控件的基础上,并在代码窗口里实现事件响应代码的编写。
(4)应用程序运行效果。开始检测时,进入游戏系统界面,点击设置下拉菜单(MenuItem),设定下拉菜单下的起始无效时间(Startinvalid)和成功时间(Succeedtimer)的有效值,例如,起始无效时间为2秒,成功时间为5秒。点击开始按钮(btnStart),根据吹气时的气量大小,滑动轴(silder)左右移动。当气量小时,滑动轴(silder)向左移动,同时气球降落;当气量大时,滑动轴(silder)向右移动,气球上升。成功时间达到已设定的有效值时,提示使用者检测成功的文本(txtSucessed);相反,当成功时间未达到已设定的有效值时,提示使用者检测失败的文本(txbfailed),当儿童完成游戏的同时,完成了检测。利用Microsoft Expression Blend技术可以使得WPF应用程序更加方便、更加出色的完成。
3、结语
WPF给Windows应用程序的开发带来一次划时代的革命,它提供了一种全新的、全功能的开发模式。为企业的医疗仪器提供这一相配套的儿童检测软件,可以使得不同年龄段的儿童克服不安定心理,更好的配合医疗检测,从而提高治疗的效果,并增加了企业仪器的新服务人群,开拓了新的医疗市场。