收藏 分销(赏)

基于WPF的xx大学简易观光图示系统设计论文.doc

上传人:仙人****88 文档编号:9398623 上传时间:2025-03-24 格式:DOC 页数:35 大小:789KB 下载积分:10 金币
下载 相关 举报
基于WPF的xx大学简易观光图示系统设计论文.doc_第1页
第1页 / 共35页
基于WPF的xx大学简易观光图示系统设计论文.doc_第2页
第2页 / 共35页


点击查看更多>>
资源描述
毕业设计(论文) 第 31 页 基于WPF的xx大学简易观光图示系统设计 摘 要 随着用户需求复杂化,目前大部分应用程序已逐渐不能满足更高、更全方位的用户体验要求。为给用户提供更具视觉效果的体验,微软在最新发布的Windows Vista开发库中引入全新的图形子系统Windows Presentation Foundation(WPF)。 本设计是对WPF结构及其所提供的技术和方法进行初步探讨,并应用WPF技术设计实现xx大学简易观光图示系统。本设计以.NET Framework3.0技术为背景,采用统一编程模型,确定设计和代码分离的开发框架。使用微软最新开发工具Expression Blend开发用户界面和控件,运用WPF提供的服务及对3D图形的支持,实现3D程序框架及绚丽的用户体验,并将其生成为XMAL资源文档。最后在VS2005中导入相关资源文档,实现后台逻辑代码并导入XML数据存储文档,初步实现具有较丰富用户体验,可按院系浏览校园风光的简易观光系统。 关键词:WPF;XAML;3D The design of WPF-based Hunan University simple tourist system Abstract As the requirements of users become more and more complex, the majority of applications have gradually failed to meet users' demand for greater and all-round user experience now. In order to provide more effective visual experience to UI, Microsoft brings out a new graphics subsystem named Windows Presentation Foundation (WPF) in the latest release of Windows Vista development library. The main content of the present design is to discuss WPF's structure, the techniques and methods it provides. On the background of techniques of .NET Framework3.0, the present design uses a unified programming model under which UI and the logical code are separated. In this design, the UI and controls are developed by the latest Microsoft development tool, Expression Blend, using WPF services and support of 3D graphics to implement the 3D application framework with gorgeous UI. These UI designs should be built into XAML resource document and imported to VS2005. Lastly, the XAML resource document will be integrated with hidden logical code and XML data files in the VS2005. The present design implements a simple tourist system with rich user experience, which enables user to view the campus' scenery by academy. Key words:WPF;XAML;3D 目 录 1.绪论 1 1.1课题背景及目的 1 1.2国内外研究状况 2 1.3系统设计研究方法 3 1.4论文构成及研究内容 4 2.WPF简介 5 2.1 WPF技术特点 5 2.1.1 WPF引擎 5 2.1.2 WPF框架 7 2.2 XAML语言简介 8 2.2.1 XAML综述 8 2.2.2 XAML特点 9 3.WPF优越性分析 11 3.1声明式编程 11 3.2 触发器 12 3.3 一致的style 13 3.4 丰富的应用程序文本 14 3.5 可修改的UI布局 15 3.6 3D 图形支持 15 3.7 整体优越性 16 4.XX大学简易观光图示系统设计与实现 17 4.1系统环境 17 4.2开发环境 17 4.2.1 Microsoft .NET Framework 3.0 17 4.2.2 WinFX Software Development Kit (SDK) 17 4.2.3 Visual Studio 2005 18 4.2.4 Visual Studio 2005 Extensions for WCF, WPF 18 4.2.5 Microsoft Expression Blend 18 4.3 总体开发方案 18 4.4 UI设计端开发步骤 19 4.4.1 开发应用程序框架 19 4.4.2 开发控件 22 4.4.3 设计应用程序风格 25 4.4.4 UI设计端总结 26 4.5程序端开发端步骤 26 4.5.1 声明资源文件整合UI设计 26 4.5.2 编写3D辅助代码 26 4.5.3 编写其他后台代码 27 结 论 28 致 谢 29 参考文献 30 1.绪论 1.1课题背景及目的 UI即User Interface(用户界面)的简称。UI设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。UI设计以用户体验为衡量标准,优秀的UI设计可使软件的操作变得舒适、简单、自由,可充分体现软件的定位和特点。 视窗界面出现开始,UI进入一个较快发展的历史时期。随后几年中涌现很多具有历史意义的界面风格,其中应用最普遍的是Windows窗口风格。在Windows Vista之前,Windows平台的图形系统主要有:GDI、GDI+、Direct3D,其中GDI的应用领域最为广泛。 GDI(Graphics Device Interface,即图形设备接口),是Windows API(Application Programming Interface)的一个重要组成部分。GDI图形系统已经形成多年,它提供2D图形处理、文本处理,以及图像处理功能。它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具体设备的细节,只需在一虚拟逻辑设备中进行操作。 虽然GDI提供上述功能,但仍在编程模式、图像处理和显示卡加速支持方面有所欠缺。为弥补上述缺陷,GDI+于2002年被提出。它引入2D图形反走样、浮点数坐标、渐变以及单个象素的Alpha支持,并新增渐变画刷、基数样条函数、持久的路径对象、变形和矩阵对象、可伸缩区域、Alpha混合和丰富的图像格式支持等功能。但GDI+没有任何硬件加速功能。 虽然图形系统在持续发展,另一方面,计算机硬件发展和用户需求发展却更为迅速。首先,当今计算机处理芯片飞速发展,特别是显示芯片的功能日益强大。显示卡从早期的单色显示卡、彩色显示卡、加强型绘图显示卡发展到今天的3D加速卡、3D绘图显示卡,基本都具有T&l、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等技术,可支持Direct3D、OpenGL等三维图形处理库,但显示芯片强大的处理能力却没有得到充分的应用。目前,显示卡GPU的处理能力大多只应用在游戏和多媒体领域,UI方面使用得极少。其次,随着硬件、软件技术的发展,用户对软件的要求并不止于功能性方面,更包括许多非功能性质量如安全性、可用性、可维护性等,其中尤其突出的是对开发具有高度互动性、丰富用户体验以及功能强大的客户端的需求。为适应硬件发展和用户需求变更,给用户提供最强的体验,满足不断提高的用户视觉需求,各大技术发布商纷纷提出新的图形解决方案。其中最具影响力的是微软发布的图形子系统WPF和Macromedia发布的Flash/Flex。Windows Vista引入的全新的图形子系统WPF,它采用新的显示驱动模型能,充分利用显示卡的处理能力,可向用户提供震撼的视觉效果和用户体验。 考虑到WPF具有更广阔的可操作空间、更高的执行效率和更丰富的本地资源支持。本毕业设计选定以WPF为基础,系统了解Framework3.0开发基础和WPF应用环境。通过引入统一的编程模型,运用WPF提供的控件新特性、新控件及对3D图形的支持,初步实现可按院系浏览校园风光的简易观光系统,达到丰富客户体验、强化交互性能、优化用户界面的目的。并在此基础上,将WPF与现有图形系统GDI+进行对比,详细分析WPF作为下一代图形系统的优越之处。 1.2国内外研究状况 近年来,为满足不断提高的用户体验需求,各大技术发布商纷纷提出可优化表现的新图形系统和技术解决方案。除微软WPF外还有Flash/Flex、Apollo、XUL、Bindows等,下面将简要介绍这些技术和系统。 微软公司于2003在年洛杉矶微软专业开发者大会(PDC)中公布Avalon,将其视为 下一代用户界面技术。在2005年PDC中,微软公司展示更加完整的Avalon版本,并将其正式定名为 WPF。目前,WPF已完成由演示软件经alpha版本API到如今BETA版转变。 Flash/Flex由Macromedia公司发布,Flex是可运行于J2EE和.NET平台的表示服务器和应用程序框架。Flex表示服务器提供基于标准的、声明性的编程方法和流程,并提供运行时服务,用于开发和部署丰富客户端应用程序的表示层。Flex开发者使用直观的基于XML的MXML来定义丰富的用户界面。该语言由 Flex服务器翻译成SWF格式的客户端应用程序,在Flash Player中运行。据Macromedia称已有98%以上桌面系统的浏览器都已安装Macromedia Flash Player,这使得该技术可以支持种类广泛的平台和设备。 Apollo是由Adobe公司发布的一款客户端软件,无需浏览器就能够运行Flash 应用。Apollo将使开发人员能够开发同时显示Flash 动画、HTML网页、PDF 文件的应用,它的设计理念是在保留Web 优点的同时,克服现有应用的局限性,优化软件表现。 XUL(XML User Interface Language)是一种基于XML的用户界面语言,它来自于Mozilla的开放源码项目,可用于建立窗体应用程序。这些应用程序不但可以在 Mozilla浏览器上运行,而且也可以运行在其他描述引擎上,如Zulu(Flash MX组件)和Thinleys(Java实现)。XUL描述引擎非常小,它可以使用、生成XML数据。XUL的一个主要缺点在于目前还没有获得一个主要商业实体的支持。XUL最大的优点在于与Gecko引擎的集成而可能满足大量Web标准,以及与大多数其它XML用户界面描述语言相比它是一种非常具有表达力和简洁的语言。 Bindows是用Javascript和DHTML开发的Web窗体框架。Javascript用于客户端界面的显示和处理,XML-HTTP用于客户端与服务器的信息传输。Javascript在客户端的表现力不容置疑,利用Javascript几乎可以实现Windows应用程序所能实现的大部分功能,XML-HTTP一直以来常被用于实现“无刷新”的Web页面,和 Javascript配合,可以完成数据从服务器和客户端的传输。Bindows的一个主要的缺点是它采用一次全部载入的方式来实现脚本库,在窗口的加载期需要一个漫长的等待过程,甚至浏览器的进程会产生无响应的情况。这点Bindows根本没有遵循“用多少去多少”的准则。另外,Bindows内部大量利用IE6的技术,没有考虑到非IE的浏览器,而限制Bindows的流行。 为实现丰富用户体验,各种技术纷纷涌现,上述只是其中具有代表性的几种。它们一部分已投入实际应用,而另一部分因种种限制,并未广泛应用,需要更进一步的发展。 1.3系统设计研究方法 本设计以微软.NET Framework3.0技术为背景,采用如下三个步骤: 1.采用统一编程模型,确定用户界面和逻辑分离的开发框架; 2.使用微软最新开发工具Expression Blend开发用户界面和控件,运用WPF提供的控件新特性、新控件及对3D图形的支持,实现3D程序框架及绚丽的用户界面效果,并将其生成为XMAL资源文档; 3.在VS2005中导入相关资源文档,实现逻辑代码并导入XML数据存储文档,初步实现具有较丰富用户体验,可按院系浏览校园风光的简易观光系统。 1.4论文构成及研究内容 本论文对WPF开发环境、WPF结构、WPF开发方法进行全面论述,概要说明基于WPF的xx大学简易观光图示系统如何设计与实现,并在实践基础上详细阐述WPF的优越性。具体包括以下部分: 1. WPF简介 (1) WPF技术特点 (2) XAML简介 2. WPF优越性详细分析 (1) 声明式编程 (2) 触发器 (3) 一致的Style (4) 丰富的应用程序文本 (5) 可修改的UI布局 (6) 3D图形支持 (7) 整体优越性 3. xx大学简易观光系统实现 (1) 系统环境 (2) 开发环境 (3) 总体开发方案 (5) UI设计端开发步骤 (6) 程序端开发步骤 2.WPF简介 2.1 WPF技术特点 WPF是Windows Vista中新的关键图形子系统,它为用户界面、2D和3D图形、文档和媒体提供统一的方法。WPF在.NET Framework基础上生成,并利用Direct3D进行基于向量的呈现,为生成所有种类的浸入式应用程序提供强大的解决方案。另外,WPF通过提供声明性编程模型实现“工具性”和灵活性,从而使设计人员成为开发过程不可分割的组成部分。WPF由两个主要部分组成:引擎和编程框架。下将分别介绍这两部分。 2.1.1 WPF引擎 WPF引擎统一开发人员和设计人员体验文档、媒体和UI的方式,为基于浏览器的体验、基于窗体的应用程序、图形、视频、音频和文档提供一个单一的运行时库。WPF使得应用程序不仅能充分利用现代计算机中现有的图形硬件的全部功能,而且能够利用硬件将来的进步。例如,WPF的基于矢量的呈现引擎使应用程序可以灵活地利用高DPI监视器,而无需开发人员或用户进行额外的工作。同样,当WPF检测到支持硬件加速的视频卡时,它将利用硬件加速功能。下面分图形系统和核心组件两方面介绍WPF引擎。 2.1.1.1 WPF图像系统 如概述中所介绍,当前的Windows图形平台(GDI)具有跨越将近二十年的传统。在过去数年中,3D领域已经发生巨大的变革,目前的图形硬件进步主要集中于3D管线,但GDI开发并未有相应的发展。WPF被设计为基于较旧2D技术图形系统的完全替代物,并且最大限度地使用现代PC的图形功能。图形图像表示的优化是WPF的一个重要优点。WPF图形系统如图2.1所示[1]: 图2.1 WPF图形系统 Windows Vista图形系统中关键的改进是引入新的显示驱动模型WDDM(Windows Desktop Driver Model)。前面曾提及计算机有大量显卡资源被闲置,为能安全、高效地利用这些资源,WDDM驱动模型提供与操作系统虚拟化内存以便多个应用程序同时运行相类似的功能。它虚拟化显卡的资源(主要是显示内存),提供一调度程序,使多个基于Direct3D的应用程序,如WPF应用程序和基于WPF的Windows Vista桌面窗口管理器,可以共享显卡,而WDDM的健壮性、稳定性也得到显著提高。大量的驱动操作从内核模式移动到用户模式,这样不仅能提高安全性,还可简化显示驱动的开发过程[1]。 WPF为应用程序和内容提供主流图形服务。它提供一个应用程序模型,该模型利用在现代图形卡中流行的3D硬件支持。WPF更加注重基于向量的内容;它的协调系统提供双精度、独立于分辨率的像素寻址,从而为高DPI显示提供支持;本机坐标系基于双精度数据类型。新呈现模型具有无需完成额外工作即可应用图像转换的附带功能。WPF还是更为广泛的图形生态系统的一个必不可少的组件。例如,它利用新的Windows Vista显示驱动程序模型,可与打印模型共享功能,并且具有通过终端服务实现的高保真远程处理,还为旧的显示硬件提供版本返回解决方案。 WPF适当地利用硬件呈现。它使用Direct3D在DirectX 7以上版本中提供加速呈现,并用Pixel Shader 2.0硬件进一步优化图形卡。对于不具有上述功能的计算机,WPF使用软件呈现,即一个基于CPU的SSE和SSE2优化光栅化程序。当 WPF无法使用硬件管线呈现某些内容,并且无法保证可以在所有计算机硬件配置中使用呈现输出时,也会使用该程序。 2.1.1.2 WPF核心组件 大部分WPF编程模型是由托管代码实现。图2.2显示WPF的主要组件。其中灰色标注是WPF组件的主要代码部分。注意图中的milcore组件的职责是完成与Direct3D的交互。并且出于效率考虑,milcore由非托管代码实现。PresentationFramework和PresentationCore都位于通用语言运行(CLR)之上。很显然,WPF的大部分代码都是以托管形式存在。当然,在一些显示卡不支持所需要的功能时,WPF也已提供稍微低效的软件实现,以此来支持在某些PC上运行WPF应用程序[3]。 图2.2 WPF图形系统 2.1.2 WPF框架 WPF框架在媒体、用户界面设计和文档方面为开发人员提供各种解决方案。WPF的设计将可扩展性考虑在内,使开发人员可以完全在 WPF引擎的基础上创建自己的控件,也可以通过对现有WPF控件进行再分类来创建自己的控件。WPF框架的核心是用于形状、文档、图像、视频、动画、3D支持以及用于放置控件和内容的面板的一系列控件。这些自有控件为开发下一代用户体验提供构造块。 作为下一代图形子系统,WPF集成各种输出服务:用户界面、二维和三维图形和图像、基于文档的打印和呈现、语音以及音频和视频服务。通过为所有这些服务提供基于一个框架的托管代码,WPF使提供新的、丰富的用户体验成为可能,这在以前很难实现。WPF的框架为 .NET开发人员所熟悉,最终将减少构建数据绑定应用程序所需的代码。此外,WPF引入新的增强服务(例如动画),同时保留与为 GDI/GDI+ 编写的现有代码的互操作性。WPF框架所提供的服务如表2.1[3]所示: 表2.1 WPF服务 基本服务 XAML, Property System, Input & Eventing, Accessibility 媒体服务 2D, 3D, Audio, Video, Text, Imaging, Animation, Effects, Composition Engine 文档服务 XPS Documents, Open Packaging Conventions 用户界面服务 Application Services, Deployment, Controls, Layout, Data Binding 本文随后将对其中某些服务进行详细论述。 2.2 XAML语言简介 在上一部份WPF框架中已经提到,WPF框架提供XAML基本服务。WPF中XAML的引入向开发者提供UI设计和代码分离的编程模型。XAML是WPF中提出的一个具有重要意义的新技术,基本涉及WPF中所有UI开发。本设计所有UI代码都采用XAML开发。下面将详细介绍XAML。 2.2.1 XAML综述 XAML(eXtensible Application Markup Language)的中文名为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新描述性语言。XAML提供一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面,而这种实现方式和ASP.NET中的代码后置模型非常类似。XAML能够很好地将用户界面设计与代码相分离,使图形设计人员可以创建引人注目的、高度精确的用户界面,使开发人员能够将精力集中在应用程序逻辑上。这个应用程序开发协作模型使开发人员和设计人员能够紧密而有效地协同工作。这种代码与界面开发分离的编程模型可为程序开发带来如下便利:   UI设计者可集中精力将设计工作做得更好,同时可得到更有效的开发者支持。 随着软件外包和订购的逐渐风行,WPF使得一些商业设计者能更好的从事界面设计工作,并集成一些简单功能,而购买的核心代码能够独立的完成内部的一些关键逻辑而不干扰设计过程。 更好的支持应用软件的国际化。不同的独立的界面可以使用不同的本地化方案,而内部的代码通用。 支持软件的“空标签”,可以为不同的用户采用定制的界面而保持核心的逻辑不变。开发者创建程序逻辑,然后为不同的用户使用不同的界面并贴上他们的商标等。 XAML简化.Net Framework 3.0编程模式中的用户界面创建过程,使用XAML开发人员可以对WPF程序的所有用户界面元素,例如文本、按钮、图像和列表框等进行详细的定置,同时还可以对整个界面进行合理化的布局,这与使用HTML非常相似。但是由于XAML基于XML,所以它本身是一个组织良好的XML文档,而且相对于HTML,它的语法更严谨、更明确。预计以后大部分的XAML都可由相应的软件自动生成,就如同现在制作一个静态页面时,几乎不用编写任何HTML代码就可以直接通过Dreamweaver软件生成一个美观的页面。 大多数的WPF程序可能同时包含程序代码和XAML。开发者可使用XAML定义应用程序的初始界面,而后才编写相应的功能实现代码。同时也可将逻辑代码直接嵌入到一个XAML文件中,也可将它保留在一个单独的文件中。实际上,能够用XAML实现的所有功能都可以使用程序代码来完成。但一般而言,程序代码的优势在于流程处理和逻辑判断,而不是界面的构建。而XAML则是集中关注于界面的编程,开发者可以将它和其它的.NET语言配合使用,从而构建出一个功能完善、界面美观的WPF程序[4]。 2.2.2 XAML特点 XAML是可扩展的,开发人员可以创建自定义的控件、元素和函数来扩展XAML。而且由于XAML各元素在本质上就是WPF类的映射,开发人员可以很轻松地使用面向对象的技术对XAML元素进行扩展。即开发人员可以开发一些自定义控件和组合元素,并将它公开给用户界面设计人员和其它的开发人员使用。 XAML是一种纯正的、用来描述用户界面构成元件和编排方式的标记语言。尽管有部分的XAML语法具备程序设计语言的特性(例如XAML中的Trigger和Transform),但是XAML并不是一种用于程序设计的语言,它的功能也不是为执行应用程序逻辑。 XAML是一种解析性的语言,尽管它也可以被编译。微软推荐XAML被编译成二进制语言程序标记语言BAML。XAML和BAML都可以被WPF解析,并且以一种和HTML相似的方式进行界面的呈现。但是和HTML不同的是,XAML是强类型化的,即HTML会忽略那些它不能识别的元素和属性,而XAML必须在识别所有的元素和属性的情况下,才对页面进行呈现。尽管在XAML中各个属性都是以字符串(例如Background)表示,但是这些字符串实际上代表的是WPF中的对象,只有被WPF识别的对象才可以作为元素的属性。 XAML和WPF类库紧密相关,所有可以在XAML中使用的元素其实都是一个类,例如<Button>元素就与类库中的System.Windows.Controls.Button相对应。正是因为上述的继承关系以及XAML中的每个元素均代表一个WPF类,所以XAML也存在一些面向对象体系结构的特性。例如,一个元素派生自另外的一个XAML元素,那么该元素将继承其父元素的特性。开发者也可以将自己编写的类用作XAML的元素,正如XAML的中文名称为可扩展应用程序标记语言,任何一个具有公共的无参数的构造函数以及可设置属性的类均可在XAML中使用[4]。 XAML并不是HTML。尽管XAML在元素的声明、程序样式的设置和指定事件处理程序上都和HTML非常类似,但是XAML基于XML,它是WPF的外在表现形式。而HTML主是一种标记语言,仅仅是用来为浏览器呈现页面内容。XAML除用来呈现信息和请求用户输入等基本的功能外,它还包含一些高级的特性,如能提供对动画和3D众多方面的支持。 3.WPF优越性分析 第二大部分WPF简介中已简要介绍WPF的结构和功能。而本部分将对其作详细展开,结合开发实践,具体介绍WPF中最具亮点的新技术,并讨论如何在实际开发中应用WPF所提供的新技术,分别阐明这些新技术的优势。 3.1声明式编程 WPF中最醒目的体系结构是声明性编程用法。在声明性编程中,重点在于“做什么”而不是“如何做”。开发者只需声明要系统做什么,而不是列出它为此必须执行的一组操作。SQL是一个规范的示例,开发者只需构造声明要检索信息的SQL查询;至于如何执行该查询则由数据库解决。 此处展示依赖于声明性方法的几个示例。需提供自定义图形,开发者可以创建表示图形的对象,然后WPF会处理将这些图形呈现到屏幕的过程。包括在属性更改时更新该屏幕。同样,开发者解释如何创建特定的对象,然后 WPF 将执行实际的动画。开发者也看到布局元素如何用于声明 UI 的排列方式,即无需以手动方式定位元素或者编写代码来确定它们的位置和大小[7]。 声明性风格有很多优势。最重要的一点是,它通常可以产生更简单、更易于读取的程序。只声明需要做什么的代码通常比执行实际工作的代码短得多。如本设计中的Grid 示例,它以行和列定义开头: <Grid.ColumnDefintions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="5*" /> </Grid.ColumnDefintions> <Grid.RowDefintions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefintions> 这是布局要求的一个简洁表达方式。它通知 Grid 元素UI需要两行和两列。它指示列应该按比例调整大小,而且第二列可用列宽应为第一列可用列宽的五倍。对于这两行,它通知网格基于第一行的内容自动获取第一行的高度,并使第二行填充其余所有可用空间。而要在GDI+ 中手动编写这部分必然需要许多代码。 由于它显式阐明它的意图,因此计算出该声明性代码的操作通常更加容易。因此,无需维护开发人员进行大量工作来推断该代码的意图。声明性代码也可以使设计工具的工作更为出色。由于开发者明确提出自己的意图,因此设计工具可理解开发者要达到什么样的效果。此外,使用声明性编程,该框架在执行该工作时具有很大的自由度,这可以潜在启动重要的优化。 由于 WPF 允许以声明方式定义一个 UI 的行为的许多方面,因此用 XAML 表达这些行为非常简单。虽然布局和动画是应用程序运行时行为的一些方面,但是开发人员可以使用 XAML 以声明方式定义这些行为,最终将该功能提供给设计人员。 3.2 触发器 触发器是一个声明性机制,用于指定控件应该如何响应某个操作。触发器可以在风格或模板内声明。例如可以使用触发器来指示按钮,当鼠标在其上时应该始终变成绿色: <Style TargetType="{x:Type Button}"> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="Green" /> </Trigger> </Style.Triggers> </Style> 触发器可用于激发动画。例如,开发者可想令一按钮在鼠标位于它上面时变成另一种颜色。动画在本质上与属性不同,属性是暂时的。虽然开发者可以将属性设置为一个值,但无法将动画设置为一个值,相反可以将动画设置为开始和停止。因此,动画触发器由事件驱动,而不是由属性驱动[15]。 触发器是 WPF 的声明性方法的一个重要部分。这是能为设计人员提供更多帮助的另一个功能,它使开发人员能够设计一个无需开发人员的代码就能够响应操作的 UI,从而方便的实现动态效果。 3.3 一致的Style 在Web开发中,Style是一组属性,这些属性可以应用于文档的某个部分以便获取特定的外观。WPF中的Style与此非常类似,但是它们可以应用于用户界面中的任何元素,而不仅仅是文档的某些部分。此外,WPF Style可用于设置任何属性。例如可创建一个将Slider控件的Maximum属性置为 200 的风格。 虽然WPF Style可用于设置任何属性,但是使用Style的目的通常是确保跨应用程序的可视一致性。如果设计者想让应用程序传送一个旧式外观,则可以创建一个风格以便一致应用适当的属性。例如,该代码定义一个称为oldeWorld的Style,该Style将字体设置为Old English: <Window.Resources> <Style x:Key="oldeWorlde"> <Setter Property="Control.FontFamily" Value="Old English Text MT" /> <Setter Property="Control.FontSize" Value="18" /> </Style> </Window.Resources> 该WPF style也可以应用于任何控件: <Button Style="{StaticResource oldeWorlde}">Click me!</Button> OldeWorlde Style是一个命名Style,而且仅应用于在其Style属性中显式请求它的控件。还可以定义一个在默认情况下应用于指定控件类型的Style。以下Style将自动应用于窗口中的所有按钮: <Window.Resources> <!-- all Buttons get this style --> <Style TargetType="{x:Type Button}"> <Setter Property="Control.FontFamily" Value="Old English Text MT" /> <Setter Property="Control.FontSize" Value="18" /> <Setter Property="Background" Value="VerticalGradient Red Black" /> <Setter Property="Foreground" Value="VerticalGradient Yellow Orange" /> </Style> </Window.Resources> ... <!-- no need to set the style manually --> <Button>Click me!</Button> WPF style提供一个有用的机制,即在独立于应用程序行为和结构的情况下管理应用程序的外观。该分离使开发人员可以专门致力于定义应用程序的行为,而使设计人员专门致力于设计程序外观。 3.4 丰富的应用程序文本 Windows 应用程序中的文本长期受困于Web应用程序提供的文本功能。HTML和层叠样式表可提供具有大量文本布局和格式化功能的应用程序。而另一方面,Windows 应用程序具有的支持却极少。 当然,可使用Win32显示丰富的格式化文本,但该编程任务量极大。开发者也可以嵌入MSHTML控件并显示文本。但该技术不能完全将文档性质的文本呈现直接集成到应用程序中,这意味着某些应用程序区域无法从MSHTML中获益。由MSHTML托管的文档显示与应用程序的其余部分之间形成鲜明的对比[15]。 WPF使得将丰富的格式化文本集成到用户界面中更加容易。甚至最简单的文本处理元素TextBlock控件也使能使用字体风格、大小、颜色和字体的任意组合。以下是一个由单个TextBlock元素组成的示例: <TextBlock FontFamily="Calibri" FontSize="11pt"> Hello, <Bold>world!</Bold> <Span FontFamily="Old English Text MT" FontSize="24pt">This</Span> is a <Italic>single</Italic> <Span FontFamily="Consolas" Foreground="Blue"> <<Span Foreground="DarkRed">TextBlock</Span>/> </Span> <Hyperlink>element</Hyperlink>. </TextBlock> 正如该示例,即使在这个元素中,开发者也可以获取很多风格。比Windows窗体中的普通Label控件更为强大。即使开发者只需要可使用Label获取的纯文本,TextBlock仍然非常易于使用。要放弃特殊的格式化,只需为其提供一个简单的字符串显示。 此外,对于需要显示大量文本的应用程序而言,WPF提供高级文本布局功能。例如,DocumentViewer控件显示文本文档,从而使用高级文本布局探测法针对可用空间和分辨率优化文本的可读性。该文本布局技术结合Microsoft在屏幕可读性方面的广泛研究成果[17]。 使文本具有良好外观对于生成界面美观的应用程序至关重要。但更重要的是确保应用程序的所有可视部分以正确的大小显示在正确的位置,而无论用户如何选择排列其窗口。 3.5 可修改的 UI 布局 多数应用程序设计人员都难以掌握其程序的运行大小。不同PC间的屏幕大小差别很大。此外,一些用户以最大化方式(充满整个屏幕)运行应用程序,而其他用户使用较小的窗口以便可以同时看到若干个应用程序。 这并没有妨碍一些设计人员设计只以一种大小工作的UI,但是,若想满足用户的需要,就应该生成一个具有可以将自身修改为可用空间的布局的 UI。如需要使应用程序可访问且可本地化,这种适用性也非常有用。一个足够适用的UI无需重新设计,即可以一种屏幕的低分辨率呈现,或者可以转换为所有单词都是两倍长度
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服