wpf UI框架 wpf

什么是WPFWPF(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 及 SubscriptSmall 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 技术 。

秒懂生活扩展阅读