WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正作到了分离
界面设计人员与开发人员的工做;同时它提供了全新的多媒体交互用户图形界面。
-
中文名
-
Windows呈现基础
-
外文名
-
Windows Presentation Foundation
-
类 型
-
图形系统
-
属 于
-
微软
WPF 为Windows Presentation Foundation的首字母缩写 ,中文译为“
Windows呈现基础”,其原来代号为“Avalon”,因与“我佩服”拼音首字母组合同样,国内有人调侃地称之为“我佩服”。由 .NET Framework 3.0 开始引入,与 Windows Communication Foundation及 Windows Workflow Foundation并行为新一代 Windows操做系统以及 WinFX 的三个重大应用程序开发类库。
WPF是微软新一代
图形系统,运行在.NET Framework 3.0及以上版本下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操做方法。基于DirectX 9/10技术的WPF不只带来了史无前例的3D界面,并且其图形向量渲染引擎也大大改进了传统的2D界面,好比Vista中的半透明效果的
窗体等都得
WPF
益于WPF。 程序员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已再也不是高不可攀的奢望。 WPF相对于Windows客户端的开发来讲,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持(flow text support),3D视觉效果和强大无比的控件模型框架。
Windows Presentation Foundation(之前的代号为“Avalon”)是 Microsoft 用于 Windows 的统一显示子系统,它经过 WinFX 公开。它由显示引擎和
托管代码框架组成。Windows Presentation Foundation 统一了 Windows 建立、显示和操做文档、媒体和用户界面 (UI) 的方式,使开发人员和设计人员能够建立更好的视觉效果、不一样的用户体验。Windows Presentation Foundation 发布后,Windows XP、Windows Server 2003 和之后全部的 Windows操做系统版本均可以使用它。
WPF是.Net Framework 3.0
WPF
里新推出的主打功能之一,加上Vista集成.Net Framework 3.0,改写Winform时代,可谓是影响巨大!WPF是一套API函数库,由.Net FrameWork3.0以上版本类库运行。
WPF是Windows操做系统中一次重大变革,与早期的GDI+/GDI不一样。WPF是基于DirectX引擎的,支持GPU硬件加速,在不支持硬件加速时也可使用软件绘制。高级别的线程进行绘制,提升使用者的体验。自动识别显示器分辨率并进行缩放。而Vista就是一个很是典型的例子。
[1]
程序人员与设计彻底的明确的分工,美工人员您可使用Expression Studio中套装工具可视化的设计界面。而后交给程序开发组中的
XAML就能够。让程序人员直接套用到开发环境,不须要想页面怎么切了。
对 与WPF最重要的特点,矢量图的超强支持 。兼容支持2D绘图,好比矩形、自定义路径,位图等。文字显示的加强,XPS和消锯齿。三维强大的支持。包括3D控件及事件,与2D及视频合并打造更立 体效果。渐变、使用高精确的(ARGB)颜色,支持浮点类型的像素坐标。这些对GDI+远远不及的。
灵活、易扩展的动画机制!.Net Framework 3.0类库提供了强大的基类,只需继承就能够实现自定义程序使用绘制。接口设计很是直观,彻底面向对象的对象模型。使用对象描述语言XAML。使用开发工具的可视化编辑。
您可使用任何一种.Net编程语言(C#,VB NET等开发语言)进行开发。XAML主要针对界面的可视化控件描述,成生进会分析成.cs或.vb文件,并最后将编译为CLR中间运行语言。
[1]
Windows Presentation Foundation 由两个主要部分组成:引擎和编程框架。
1.
Windows Presentation Foundation引擎。Windows Presentation Foundation 引擎统一了开发人员和设计人员体验文档、媒体和 UI 的方式,为基于浏览器的体验、基于
窗体的应用程序、图形、视频、音频和文档提供了一个单一的
运行时库。Windows Presentation Foundation 使得应用程序不只可以充分利用现代计算机中现有的图形硬件的所有功能,并且可以利用硬件未来的进步。例如,Windows Presentation Foundation 的基于矢量的呈现引擎使应用程序能够灵活地利用高 DPI监视器,而无需开发人员或用户进行额外的工做。 一样,当 Windows Presentation Foundation 检测到支持
硬件加速的视频卡时,它将利用硬件加速功能。
2.
Windows Presentation Foundation 框架。Windows Presentation Foundation 框架为媒体、
用户界面设计和文档提供的解决方案远远超过开发人员如今所拥有的。Windows Presentation Foundation 的设计考虑了可扩展性,使开发人员能够彻底在 Windows Presentation Foundation引擎的基础上建立本身的控件,也能够经过对现有 Windows Presentation Foundation 控件进行再分类来建立本身的控件。Windows Presentation Foundation 框架的核心是用于形状、文档、图像、视频、动画、三维以及用于放置控件和内容的面板的一系列控件。这些“自有控件”为开发下一代用户体验提供了构造块。
Microsoft 在引入 Windows Presentation Foundation 的同时,还引入了
XAML,这是一种公开表示 Windows应用程序用户界面的
标记语言,可以使开发人员和设计人员用来构建和重用 UI 的工具更加丰富。对于 Web 开发人员,XAML 提供了熟悉的 UI 说明模式。XAML 还使 UI 设计从基础代码中分离出来,从而使开发人员和设计人员之间的合做更加紧密。
为何选择 Windows Presentation Foundation?
对于企业:Windows Presentation Foundation 实现了改进的客户关系和不一样的应用程序。经过提供可以快速提供更好的视觉效果、独特的用户体验的技术,来创建与客户的密切关系,使企业能够创建稳定的数字客户关系和独特的品牌化机会。并且,因为 Windows Presentation Foundation 是
窗体、文档、视频、
三维以及其余功能的综合,所以企业能够建立持久的用户体验解决方案,并集成到客户的平常活动中。
WPF
对于开发人员和设计人员:Windows Presentation Foundation 提供了统一的 UI 平台,所以他们只需学习一个模式,就能够得到无限可能的 UI 体验。
对于
.NET
开发人员:其框架是熟悉的,而且它最终将减小提供最佳用户体验和通讯逻辑所需的代码行数。
对于设计人员:Windows Presentation Foundation 提供的平台可消除内容、媒体和应用程序之间的边界。最重要的是,Windows Presentation Foundation 可使开发人员和设计人员同步紧密地合做来快速提供不一样的连通体验。
国内即时通信领导商腾讯Tencent曾经发布过一款基于WPF的QQ 概念版(QQ 概念版:QQ 概念版是腾讯首款NUI(天然用户交互)产品,全面实现了多点触摸操做。在实现IM的基础功能外,QQ概念版还推出了动感相框、动态背景、多Tab聊天窗口、3D交互、矢量界面、桌面好友等一系列新功能、新体验以及Windows7的重要新特性。
WPF能够运行在三种环境下面,以下:
一、 WPF桌面程序,此类型没有任何限制,能够是Windows可执行程序也能够是DLL
动态连接库。
只须要.Net Framework 3.0以上版本支持便可!
二、
RIA分布式环境,服务器与客户端浏览器下载使用ActiveX
插件方式解释执行的。微软改名为Silverlight,因为安全缘由,微软提取精简版.Net Framework到Silverlight中独立运行,精简了不少类库。
三、浏览器承载的应用程序(称为 XAML 浏览器应用程序 (XBAP)),您能够建立可以使用超连接(Hyperlink 类)导航的页面 (Page) 和页函数 (PageFunction(Of (T)))。
[1]
随着Vista RTM的发布,微软新一轮的技术推广已经开始。其实在此以前,WPF已经有很大的推广,由于CTP版本已经发布了有一段日子了。固然不少开发人员主要以技术研究为主,也有少数公司已经开始从事基于WPF的产品研发工做。
目前WPF的最新版本为4.5(对应.net framework 4.5),你能够从msdn上免费下载。
WPF其实不只仅是图形引擎而已,它将给Windows应用程序的开发带来一次革命,由于新的架构提供了一种全新的开发模式。固然对于普通用户而言,最直观的就是界面愈来愈漂亮,看起来愈来愈舒服了;但对于开发人员而言,界面显示和代码将更好的获得分离,这与从前的
桌面应用程序开发有不少不一样(界面设置和代码是融合在一块儿的),这是比较具备革命性的改变之一。
还有就是桌面应用程序和浏览器应用程序的融合,根据ms的承诺,正在开发中的
WPF/E,即WPF Everywhere版本,将为基于WPF的应用程序提供全面的浏览器支持,这意味着将来开发出的应用程序将能够基于浏览器在不一样的操做系统上运行,根据WPF/E开发组的定义,WPF/E仍然是WPF的子集,而不是后继版本。整体而言,WPF的前景应该是一片光明。
实质
先从
UI上分析,UI的功能是让用户观察和操做数据,为了能显示数据和响应用户的操做通知程序(经过事件来通知,如何处理事件又是一系列的算法),因此控件就是显示数据和响应用户操做的UI元素,也即:
控件就是数据和行为的载体。
[2]
数据驱动UI
什么是数据驱动UI呢?咱们知道传统的GUI界面都是由windows消息经过事件传递给程序,程序根据不一样的操做来表达出不一样的数据体如今UI界面上,这样数据在某种程度上来讲,受到很大的限制。WPF中是数据驱动UI,数据是核心,处于主动的,UI从属于数据并表达数据,是被动的。WPF数据第一,控件第二。
[2]
分类
虽然
控件没有数据重要,可是仍是比较重要的,毕竟是门面啊,只是在数据面前,它比较"有礼貌"。控件有不少,可是若是仔细去分析,也是有规律可循的,根据其做用,咱们能够把控件分为6类:
-
布局控件:是能够容纳多个控件或者嵌套其余布局的控件,用于在UI上组织和排列控件。其父类为Panel。
-
内容控件:只能容纳一个控件或者布局控件做为他的内容。因此常常借助布局控件来规划其内容。其父类为ContentControl。
-
带标题内容控件:至关于一个内容控件,可是能够加一个标题,标题部分也能够容纳一个控件或者布局,其父类为HeaderedContentControl。
-
条目控件:能够显示一列数据,通常状况下,是数据的类型是相同的。其共同的基类为ItemsControl。
-
带标题的条目控件:和上面的带标题内容控件类同,其基类为HeaderdeItemsControl。
-
特殊内容控件:这类控件比较独立,但也比较经常使用,如TextBox,TextBlock,Image等。
[2]
当这些控件不可以知足需求的时候,也能够从受信任的来源下载控件,并经过添加引用来导入自定义控件。支持WPF的第三方控件有:ComponentOne Studio,ActiveReports,visifire,Stimulsoft Report等。程序员