WPF的体系结构一般如下:
(MSDN)
(*)
我们重点介绍下第2张图,它细化了第一张图的内容。
整个体系分为3层
1.托管WPF层
PresentatinFoundation 提供布局、样式、控件、2D、3D、文字、图像、动画、媒体、数据绑定、文档
PresentationCore 主要是MIL的托管包装,提供可视化系统,创建可视化树的一些类并负责渲染。比如Visual等核心类
CLR 大家熟知的公共语言运行时,提供内存管理、异常处理等。
2.媒体集成层
MIL 是非托管代码写成的,直接和DirectX打交道,把可视化系统的指令转换为DirectX来渲染
Codecs 提供图像的编码解码,典型的比如windows默认提供jpeg、png、bitmap等图像的实现,我们可以用默认的图像查看器看这些图片。我们也可以自己写一些特定编码解码实现,比如医学影像DICOM,照相机的Raw Image,都可以通过这个组件让系统控件支持这些图像的查看等操作。
3.系统层
User32 提供用户接口编程的核心功能,比如窗体管理,消息传递,输入处理等
DirectX 提供多媒体编程的api,尤其是游戏和视频方面。
最终图形如下: