WPF与之前出现的其他技术相比引入了“内置硬件加速”和“分辨率无关”等创新功能。WPF是一种成熟的技术,它是几个已经发布的.NET平台的一部分,并通过几个版本不断地进行完善(WPF3.0 -> WPF3.5 -> WPF3.5 SP1-> WPF4 -> WPF4.5)。

Windows图形演化

传统的Windows应用程序都依靠Windows操作系统提供的两个部分来创建界面:

1. User32:该部分为许多元素(如窗口,按钮和文本框)提供熟悉的Windows外观。

2. GDI/GDI++:渲染简单形状,文本及图像提供绘画支持,但通常性能较差。

WPF引入到Windows编程领域中的一些重要变化

1. 类似Web的布局模型:流式布局。

2. 丰富的绘图模型:直接处理图元-基本形状,文本及其他图形元素。

3. 丰富的文本模型:文本,列表和浮动的图形及其他用户界面元素。

4. 作为首要编程概念的动画:声明式标签定义动画,WPF会自动让他们动起来。

5. 支持音频和视频媒体:支持播放任何Windows媒体播放器支持的音视频,允许集成视频工具。

6. 样式和模板:显示格式标准化。

7. 命令:通过代码抽象,定义应用程序命令并将其链接到多个控件上。

8. 声明式用户界面:XAML

9. 基于页面的应用程序:创建类似浏览器的应用程序。

WPF体系结构

下面我们来逐一讲解上图一些重要组件:

1. PresentationFramework.dll:包含WPF顶层的类型,包括那些表示窗口、面板以及其他类型控件的类型。

2. PresentationCore.dll:包含基础类型,如UIElement类和Visual类,所有形状和控件都继承自这两个类。

3. WindowsBase.dll:包含更多基本要素如DispatcherObject类和DependencyObject类,这两个类引入了依赖项属性。

4. micore.dll:WPF的渲染核心

5. Direct3D:一套低级API,WPF应用程序中所有图形都由他进行渲染。

6. User32:用于决定哪些实际程序占有桌面的哪一部分。

参考书目

WPF编程宝典-使用C#2012和.NET 4.5

WPF体系架构:http://msdn.microsoft.com/zh-cn/library/ms750441(v=vs.110).aspx

本人最近开始学习WPF以及DevExpress,藉此提升自己C/S架构编程的能力。在学习过程会有一些心得体会,于是便会写一些博客来记录这些想法,有兴趣的朋友可以和我一起交流学习。那么就让我们从这里开始WPF与DevExpress的旅程吧!

QQ群: 32745894,欢迎大家加入讨论!

博客地址: http://www.cnblogs.com/zhq3051/

WPF之旅(一)- 概述的更多相关文章

  1. WPF UI布局之概述

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

  2. WPF六个控制概述

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

  3. WCF学习之旅—WCF概述(四)

    一.WCF概述 1) 什么是WCF? Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架.借助 WCF,可以将数据作为异步消息从一个服务终 ...

  4. WPF之旅(二)- XAML

    什么是XAML XAML(Extensible Application Markup Lanaguage的简写,发音“zammel”)是用于实例化.NET对象的标记语言.尽管XAML是一种可以用于诸多 ...

  5. WPF之旅(三)- 布局之StackPanel

    说到WPF的界面布局,相信很多朋友都写过Html代码.在WPF中,大多数程序都使用类似Web的(flow)流布局.在使用流布局模型时,各种控件可以按特定的要求来排列,在窗口内容发生变化时,比如窗口大小 ...

  6. Java探索之旅(1)——概述与控制台输入

    使用的课本: Java语言程序设计(基础篇)----西电 李娜(译) 原著: Introduction to Java Progrmming(Eighth Edition) -----Y.Daniel ...

  7. WPF学习概述

    引言 在桌面开发领域,虽然在某些领域,基于electron的跨平台方案能够为我们带来某些便利,但是由于WPF技术能够更好的运用Direct3D带来的性能提升.以及海量Windows操作系统和硬件资源的 ...

  8. WCF学习之旅—第三个示例之五(三十一)

       上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九) WCF学习 ...

  9. WCF学习之旅—WCF第二个示例(五)

    二.WCF服务端应用程序 第一步,创建WCF服务应用程序项目 打开Visual Studio 2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序.在弹出界面的“名称”对 ...

随机推荐

  1. java 编程军规

    军规条例军规一:[避免在程序中使用魔鬼数字,必须用有意义的常量来标识.]军规二:[明确方法的功能,一个方法仅完成一个功能.]军规三:[方法参数不能超过5个]军规四:[方法调用尽量不要返回null,取而 ...

  2. ASUS K751笔记本电脑使用U盘启动

    ASUS K751笔记本电脑缺省是不能使用U盘启动的.即使开机按ESC键出现启动设备选项菜单,选择了U盘也一样会从硬盘启动. 为此需进行如下步骤: 开机按F2进入bios如下设置: Security- ...

  3. XHTML文档基本结构

    1.什么是XHTML 即是通常所说的DIV+CSS XHTML (可扩展文本标签语言)英文表示(eXtensiblet HeperText Markup Language) (XHTML是一个扮演着H ...

  4. oracle PL/SQL(procedure language/SQL)程序设计(在PL/SQL中使用SQL)

    在PL/SQL程序中,允许使用的SQL语句只有DML和事务控制语句,使用DDL语句是非法的.使用SELECT语句从数据库中选取数据时,只能返回一行数据.使用COMMIT,  ROLLBACK, 和SA ...

  5. POJ 1287 Networking (最小生成树)

    Networking Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit S ...

  6. 剑指Offer24 复杂链表的复制

    /************************************************************************* > File Name: 24_Comple ...

  7. DOS批处理命令-for语句

    for是为了循环执行一系列命令而执行的命令语句. for要处理的内容不同,语法结构稍有不同.下面就各种情形来分别 1.基本的语法:FOR %変数 IN (set) DO 命令 [参数] 语法内容解析: ...

  8. Chrome JS内存泄漏排查方法(Chrome Profiles)

     原文网址:http://blog.csdn.net/kaitiren/article/details/19974269 JS内存泄漏排查方法(Chrome Profiles)   Google Ch ...

  9. STL Container和ATL智能包裹类的冲突

    STL Container和ATL智能包裹类的冲突 载自:http://www.codesky.net/article/200504/63245.html Article last modified ...

  10. 谷歌浏览器Chrome不再支持showModalDialog的解决办法

    问题重现 弹出窗口编码: JavaScript 0 1 2 3 4 5 6 7   var obj = new Object();   var retval = window.showModalDia ...