WPF概述
一。概述
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概述的更多相关文章
- WPF 概述
WPF 全称是:Windows Presentation Foundation,直译为Windows表示基础.WPF是专门为GUI(Graphic User Interface)程序开发设计的. 在过 ...
- WPF学习(1)WPF概述
WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于NET Framework 3.0的一部分.它提供了统一的编程模型 ...
- WPF概述(硬件加速及分辨率无关性)
一.名词解释 WPF(Windows Presentation Foundation),直译为Windows表示基础,是专门用来编写程序表示层的技术和工具. 大部分程序都是多层架构的,一般至少包含三层 ...
- (1)WPF概述
一.wpf特点 winfrom使用GID/GID+ 图形引擎,wpf使用directx的图形引擎 通过directx提供硬件加速 类型web的布局模型 丰富的绘图模型.文本模型, 支持音频视频 可创建 ...
- WPF编程宝典(Pro wpf in c# 2012)(文摘)
第一部分 基础知识 第1章 WPF概述 第2章 XAML 第3章 布局 第4章 依赖项属性 第5章 路由事件 第二部分 进一步研究WPF 第6章 控件 第7章 Application类 第8章 元素绑 ...
- WPF UI布局之概述
在线演示:http://v.youku.com/v_show/id_XNzA5NDk2Mjcy.html 清晰版视频+代码下载:http://115.com/lb/5lbeer0m9lad 一.简单介 ...
- wpf动画概述
http://msdn.microsoft.com/zh-cn/library/vstudio/ms752312(v=vs.100).aspx Windows Presentation Foundat ...
- WPF六个控制概述
在线演示:http://v.youku.com/v_show/id_XNzA0NjU1Mjk2.html 清晰版视频+代码下载:http://115.com/lb/5lbcftnrfo9s 一.简单介 ...
- WPF中的导航框架(一)——概述
有的时候,我们需要一个支持页面跳转的UI,例如文件浏览器,开始向导等.对于这样的界面,简单的可以使用ContentControl + ContentTemplateSelector的方式来实现,但是有 ...
随机推荐
- 关于javaBean中boolean类型变量的set和get注入后传到前端JS中的问题
set和get方法如下: public boolean isLine() { return isLine; } public void setLine(boolean isLine ...
- Delphi重载,覆盖,多态
一.override 重载 type TFigure = class procedure Draw; virtual;//(我的理解是)父类中可以使用父类的,子类中使用子类的.与“四”是有区别的. e ...
- 【算法Everyday】第一日 二叉查找树转双向链表
算法题目链接:http://bbs.csdn.net/topics/350093707 题目 // 1.把二元查找树转变成排序的双向链表 // 题目: // 输入一棵二元查找树,将该二元查找树转换成一 ...
- poj 2503 Babelfish(字典树哈希)
Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 29059 Accepted: 12565 Description You hav ...
- weblogic启动报错之WLS_DIAGNOSTICS000000.DAT
查看控制台日志报错信息如下: <-- 下午04时46分42秒 CST> <Notice> <Log Management> <BEA-> <The ...
- UVA 796 Critical Links(无向图求桥)
题目大意:给你一个网络要求这里面的桥. 输入数据: n 个点 点的编号 (与这个点相连的点的个数m) 依次是m个点的 输入到文件结束. 桥输出的时候需要排序 知识汇总: 桥: 无向连通 ...
- 【转】Jollen 的 Android 教學,#12: 如何建立選單 Menu
原文网址:http://www.jollen.org/blog/2009/06/jollen-android-programming-12.html Android應用程式的UI可以使用XML來定義, ...
- Linux下的定时器:alarm()与setitimer()
Linux下的定时器有两种,以下分别介绍: 1.alarm 如果不要求很精确的话,用alarm()和signal()就够了 unsigned int alarm(unsigned int second ...
- sql server 2008有关SQL的模糊查询
执行 数据库查询时,有完整查询和模糊查询之分. 一般模糊语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1,%:表示任意0个 ...
- CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站
CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站 CLOSE-UP FORMA ...