一。概述

WPF(Windows Presentation Foundation,视窗展示【呈现、展现、显示、表示】基础)是Windows的新一代图形子系统,他为开发人员提供了统一的编程模型,可用于构建合并了UI、媒体和文档的丰富Windows智能客户端用户体验。

Windows的图形子系统,经历了从GDI到GDI+再到WPF的发展过程。GDI是Windows1.0(1985年11月)就有的传统图形子系统,GDI+是随Windows XP引入的新式图形子系统,而WPF则是随Windows Visa和.net 3.0 推出的全新DirectX、.Net框架和Xaml,是windows下一代GUI显示系统。

其中,XAML(eXtensible Application MarkupLanguage,可扩展应用程序标记语言),是一种基于XML的用户界面标记语言,用于定义UI元素、数据绑定、事件和其他特性。WPF强调声明式描述,使用XAML是WPF的重要新特性,XAML(从而脚本语言JavaScript)可用于界面设计,这使得界面设计和界面编程可分离开来。

WPF是(3.0以上版本的).Net框架的组成部分,是为托管代码而设计的。.Net 3.0建立.Net 2.0之上,WPF是其四个新组件中最重要的一个.

WPF开发平台构建一个经过扩展的核心编程系统上,可支持一组广泛的应用程序开发功能,包括应用程序模型本身、资源、控件、图形、布局、数据绑定、文档以及安全性。

WPF是下一代显示系统,用于生成能带给用户震撼视觉体验的Windows客户端应用程序。使用WPF,你可以创建广泛的独立应用程序以及浏览器承载的应用程序。

WPF作为.Net框架类型的一个子集存在,这些类型大多数位于System.Windows命名空间。如果你以前使用.Net 框架通过注入Asp.Net和Windows窗体之类的托管技术生成应用程序,那么你应该熟悉WPF的基本编程体验。为了支持某些更强大的WPF功能并简化编程体验,WPF包括了更多编程构造,这些编程构造增强了属性和事件:依赖项属性和路由事件。

二。构成

WPF主要由MIL(Media Integration Layer,媒体集成层)、编解码器、展示核心和展示框架四部分构成。

图中的红色部分是WPF的主要部件,其中的MIL和编解码器合称为milcore(MIL 核心,对应的DLL为micore.dll)是用本地代码编写的非托管组件,目的是实现与DirectX的紧密集成。WPF中的所有显示是通过DirectX引擎完成的,可实现高效的硬件和软件呈现。WPF还要求对内存的执行进行精确控制。而MIL中的组合引擎受性能影响关系大,所以才需要放弃CLR的许多优点来提高性能。WPF的另外两个组件-----展示核心(对应的程序集为PresetationCore.dll)和展示框架(对应的程序为PresentationFramework.dll)则是用托管代码编写的(对应的程序集DLL缺省安装时都位于目录C:\Programe Files\Reference Assemblies\Microsoft\Framework\v3.o\中)。WPF主要编程模型是通过托管代码公开的。在WPF的早期设计阶段,曾有过大量关于如何界定系统的托管组件和非托管组件的争论。CLR型系统等),但这是要付出代价的。

图中的黄色部分是.Net 传统的图形界面,其基础是对平面GDI+的托管封装,用户界面则是Windows窗体,他们都离不开底层的GDI。

图中的其余部分都是Windows的部件。其中深蓝色部分为Windows的传统三大部件-------核心(Kernal)/用户界面(User)/图形(GDI)、GDI+是从Windows XP器引入的部件、DirectX和CLR则是从Windows Visa器引入的系统标准部件(在之前的Widnows版本中DirectX和CLR只是外加模块)。

三。优点

WPF具有以下亮点:

1.新型界面与开发工具-------WPF的开发工具有C#、VB、XAML和JavaScript等。

2.广泛整合-----在传统的Windows和老版本的.Net平台上创建界面丰富友好的(多媒体)应用程序,除标准的2D图形和窗口的控件之外,还需要用到不同的开发接口和技术。而.Net 3.0中的WPF,通过统一的编程模型和紧密整合,可以将各种媒体类型的数据组合在一起展现。

3.统一客户端---------网络的客户端,有传统的C/S(Client/Server)和现代的B/S(Browser/Server,浏览器、服务器)两种类型。前者为操作系统平台的相关的桌面应用程序,虽然界面美观、反映迅速、且交互性强,但是难于开发(需针对不同运行平台开发不同版本)、部署和升级,安装、运行和维护的成本都高。一般

WPF概述的更多相关文章

  1. WPF 概述

    WPF 全称是:Windows Presentation Foundation,直译为Windows表示基础.WPF是专门为GUI(Graphic User Interface)程序开发设计的. 在过 ...

  2. WPF学习(1)WPF概述

    WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于NET Framework 3.0的一部分.它提供了统一的编程模型 ...

  3. WPF概述(硬件加速及分辨率无关性)

    一.名词解释 WPF(Windows Presentation Foundation),直译为Windows表示基础,是专门用来编写程序表示层的技术和工具. 大部分程序都是多层架构的,一般至少包含三层 ...

  4. (1)WPF概述

    一.wpf特点 winfrom使用GID/GID+ 图形引擎,wpf使用directx的图形引擎 通过directx提供硬件加速 类型web的布局模型 丰富的绘图模型.文本模型, 支持音频视频 可创建 ...

  5. WPF编程宝典(Pro wpf in c# 2012)(文摘)

    第一部分 基础知识 第1章 WPF概述 第2章 XAML 第3章 布局 第4章 依赖项属性 第5章 路由事件 第二部分 进一步研究WPF 第6章 控件 第7章 Application类 第8章 元素绑 ...

  6. WPF UI布局之概述

    在线演示:http://v.youku.com/v_show/id_XNzA5NDk2Mjcy.html 清晰版视频+代码下载:http://115.com/lb/5lbeer0m9lad 一.简单介 ...

  7. wpf动画概述

    http://msdn.microsoft.com/zh-cn/library/vstudio/ms752312(v=vs.100).aspx Windows Presentation Foundat ...

  8. WPF六个控制概述

    在线演示:http://v.youku.com/v_show/id_XNzA0NjU1Mjk2.html 清晰版视频+代码下载:http://115.com/lb/5lbcftnrfo9s 一.简单介 ...

  9. WPF中的导航框架(一)——概述

    有的时候,我们需要一个支持页面跳转的UI,例如文件浏览器,开始向导等.对于这样的界面,简单的可以使用ContentControl + ContentTemplateSelector的方式来实现,但是有 ...

随机推荐

  1. oracle 的一点累积

    1.  oracle用户相关 sqlplus sys/oracle as sysdba    -- sys登录 create user xxx identified by password;   -- ...

  2. 【技术贴】7-zip 7z关联右键菜单后右键不弹出菜单的解决办法

    解决7z,7zip右键菜单 失效 右键菜单 无法弹出右键菜单 不正常 右键菜单 sb等各种疑难杂症. 1.首先先去7z的选项里面把右键关联给设置了. 用的好好的7z,正吃着火锅唱着歌忽然发现右键单文件 ...

  3. C# DataGridView 导出 Excel(根据Excel版本显示选择不同后缀格式xls或xlsx)

    /// <summary> /// DataGridView导出至Excel,解决问题:打开Excel文件格式与扩展名指定格式不一致 /// </summary> /// &l ...

  4. java根据本地Ip获取mac地址

    import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; impo ...

  5. HDU 2255 奔小康赚大钱

    题目分析:这个是个KM的模板题. #include<stdio.h> #include<string.h> #include<algorithm> #include ...

  6. 【贪心】CSU 1809 Parenthesis (2016湖南省第十二届大学生计算机程序设计竞赛)

    题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 题目大意: 给一个长度为N(N<=105)的合法括号序列.Q(Q<= ...

  7. hdu 4632区间 dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 用点容斥原理转移状态, dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+ ...

  8. MYSQL: Cannot delete or update a parent row: a foreign key constraint fails

    这可能是MySQL在InnoDB中设置了foreign key关联,造成无法更新或删除数据.可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况. SET FOREIGN_KEY_CHE ...

  9. C++中的类和对象(一)

    一,类的概念及封装 1.什么是封装 第一层含义:封装是面向对象程序设计最基本的特性.把数据(属性)和函数(方法)合成一个整体,这在计算机世界中是用类和对象实现的.(把属性和方法进行封装) 第二层含义: ...

  10. js中正则表达式的使用

    1,作用:匹配一个字符串中的一些内容2,声明和使用: 1),构造函数 var reg=new RegExp(/表达式/) 2),字面量 var reg=/表达式/ 推荐使用 eg: var reg=/ ...