什么是WPF

发布网友 发布时间:2022-04-23 22:47

我来回答

1个回答

热心网友 时间:2022-04-24 08:56

WPF(Windows Presentation Foundation)是美国微软公司推出.NET Framework 3.0的组成部分之一,它是一套基于XML、.NET Framework、向量绘图(vector graphic)技术的展示层(presentation layer)开发框架,微软视其为下一代用户界面(user interface)技术,将广泛被用于下一代的Windows平台(Windows Vista)的界面开发。其原来代号为“Avalon”,因“我佩服”拼音首字母组合一样,国内有人调侃地称之为“我佩服”。 WPF使用一种新的XAML(eXtensible Application Markup Language)语言来开发界面,这将把界面开发以及后台逻辑很好的分开,降低了耦合度,使用户界面设计师与程序开发者能更好的合作,降低维护和更新的成本。 WPF/E 是WPF的子集合,全名是:Windows Presentation Foundation Everywhere。在基于XAML与JavaScript之下,可跨越各种平台,目前 WPF/E 已演化为 Microsoft Silverlight,担负微软在 RIA (Rich Interactive Application, Rich Internet Application) 领域,并正面与 Adobe Flash 竞争的产品。 目前开发界的对WPF响应程度 目前已有很多人开始考虑或者已经转向WPF,一场新的学习热潮已经开始。但根据我最近的学习和了解,国内关于WPF的资料很少,除了msdn提供的资料以外,基本都是来自国外的资料,有些则是国外开发人员blog上的资料,当然都是英文的。因此如果现在能够引进一些WPF的书绝对是很好的时机。而且国外目前的几本WPF书也是刚刚上市,如果我们可以尽快引进的话,绝对可以帮助国内开发人员在最短时间内赶上国际步伐。 目前国内即时通讯领导商腾讯Tencent已经发布了一款基于WPF的QQ 概念版(QQ 概念版:QQ 概念版应用微软最新一代客户端展现层技术(WPF),实现多点触摸操作,是腾讯首款NUI(自然用户交互)产品,推出了动感相框、动态背景、多Tab聊天窗口、3D交互、桌面好友等一系列新功能,为您打造完美尊贵的新体验。),带给网友全新的体验;由于该产品还处于初期,许多功能都还有待完善,不过QQ概念版的出现,又让即时通讯领域带来了新的体验与享受。 WPF 部份之特征如下: [编辑] 绘图服务 所有的图形皆可由Direct3D产生。 目标在于统一各种显示图形。 Windows可以通过Direct3D 来减轻在绘图任务上的负荷,这项技术乃基于计算机显卡的绘图处理单元(Graphics Processing Unit)。 支持向量绘图(vector graphic)。 支持3D透视图并且影响2D应用程序。 [编辑] 布署 WPF 不仅仅是建立传统的程序(standalone applications)。其部署方式可分成两类:standalone与XAML Browser Applications(XBAP]])观点。这些布署方式在程序的撰写上大致类似。 程序之安装方式可以借由 ClickOnce 或微软安装器(MSI)完成。程序可被视为完全信任(full trust)具有完全访问系统资源的优点。 XAML Browser Application(XBAPs)是一种寄宿于网页浏览器上的程序,像是Internet Explorer。寄宿的程序可取得部份信任(partial trust)的沙箱(sandbox)环境之下,且无法取得完整的系统资源,WPF的功能亦无法完全发挥。寄宿的环境必须有意地防卫恶意的代码。从网页上运行XBAP(读音 "ex-bap")必须是毫无破绽的(没有安全性或安装提示)。虽然这样的寄宿程序在感观上与传统微软的DLL(out of process)有相异处。 [编辑] 互操作性 WPF可与Win32互相操作:经由主导(hosting)机制,可以在Win32码之下使用 Windows Presentation Foundation,或是在Windows Presentation Foundation环境下使用Win32代码[1]。 Windows Forms 的互操作性亦可利用 ElementHost(继承自System.Windows.Forms.ContainerControl)以及 WindowsFormsHost(继承自System.Windows.Forms.Integration)等类达成,同时提供了Host Avalon Element的能力。 [编辑] 媒体播放 WPF 针对2D图形提供形状基元(shape primitives),内置笔刷(brushes)、画笔(pens)、几何(geometries),与变形(transforms)。 WPF 以Direct3D提供完整的3D功能。但是,WPF 提供更完整的集成性在于用户界面上(UI)、文件(documents),与媒体(media)。这使得尽可以实现 3D UI, 3D 文件,和 3D 媒体。 支持了大量的图片格式(image formats)。 WPF 支持大量影音格式,如: WMV,MPEG 以及某些 AVI 档。 WPF 支持以时间为基础的动画效果,不同于以影格为基础的处理方式。如此动画的速度与系统效能就不会有所关连。 文件的体现支持ClearType,这提供一种次像数(sub-pixel)定位功能,强化其自然风格。WPF 同时支持 OpenType字体样式。 [编辑] 数据链接 WPF 有内置数据服务结合,可以让应用程序发展者在应用程序内链接并处理数据。一共有三种数据链接方式: one time:客户端(client)必须忽略服务端(server)的更新动作。 one way:客户端仅被准许读取数据(read-only)。 two way:客户端可读取并读进服务端。 数据链接在展示层并无太大负担。WPF 提供有数据样板(data templates)来控制这些数据。 [编辑] 用户界面 WPF提供了内置元件控件集合,包括有按钮(button)、菜单(menu)、列表盒(list box)。内置元件缺乏DataGrid但第三协力厂商已有支持。 WPF 的逻辑层与外观展示层已形成强力的分离模式。 元件的外貌样品可以被完全改写。 [编辑] 文件 对OpenType 的支持包括: 缚(Ligatures) 旧式数字(Old-style numerals) (for example, parts of the glyph hang below the text baseline) Swash variants 碎形(Fractions) Superscript 及 Subscript Small caps [编辑] 工具 在以往 Win32 应用程序发展时,绝大多数的工作都由开发人员 (Developer) 来处理,美术设计人员 (Designer) 可以涉入的相当有限,而且在 Win32 API 时代,要在用户界面中实现特效的话,都需要撰写大量的代码才可以做到。 在WPF 中,因为大多数的用户界面元素都可以利用 XAML 来声明,因此微软试着要将 Designer 和 Developer 结合在一起,如此可以让 Designer 可以充份发挥,并且 Developer 也不用伤脑筋在外观设计上,微软的 Designer 工具为 Microsoft Expression 产品集,其中的 Expression Blend 即为设计 WPF 应用程序的设计工具,它也可以用来设计 Silverlight 程序。 开发人员仍然可以使用 Visual Studio 来发展 WPF 应用程序,在 Visual Studio 中内含 WPF Designer 可供开发人员使用。 [编辑] WPF/E 主条目:Silverlight WPF/E 发展初期为微软计划将 WPF 推向各平台的计划,目前此计划已经被发展成为 Silverlight 技术。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com