Windows图形基础
Windows系统的两大部分:
- User32:提供windows应用程序的组成元素,比如窗口,文本框,按钮等。
- GDI/GDI+:提供绘图API,比如绘制图形、文本与图像等。
- WCF不再基于User32和GDI/GDI+,而是基于微软的DirectX技术。
- WPF功能特点
- 基于矢量绘图技术;
- 设备无关单位:分辨率无关;
- 声明式的程序设计:XAML语言;
- Web风格的布局模式;
- 丰富的绘图模型
- 原生的多媒体,动画支持
- 样式和模板特性
- 基于页面的应用程序
- WPF架构简介:
- PresentationFramework.dll放置最高层次的WPF类型,比如窗口、面板、及其他类型的控件。
- PresentationCore.dll存放基本类型,比如UIElement和Visual
- WindowsBase.dll存放WPF外包可能被重用的基本元素,比如DispatcherObject个DependencyObject
- Milcore.dll: WPF系统输出的核心,也是多媒体整合层的基础。主要用于DirectX交互
- WindowsCodecs.dll:底层API,用于提供图形图像支持
- Direct3D:用于提供图像输出的底层API
- User32:用于决定程序的状态,该服务并不提供输出通用控件的任务,而是作为处理和设置应用程序状态用。
- WPF类层次结构
- System.Threading.DispatcherObject类:WPF使用单线程应用模型(STA)。所以WPF使用派遣者的对象来整理消息,由此产生键盘输入、鼠标移动以及框架处理等。
- System.Windows.DependencyObject:WPF主要通过属性与界面元素交互。WPF属性是从DependencyObject类型派生,
- System.Windows.Media.Visual:可以把visual看成一个图像对象,WPF中的呈现的每个元素都是一个可视化对象。这些元素封装了绘图指令,图形如何被绘制的详细信息。比如裁剪,透明度和变换的设置。Visual类也提供了托管WPF API和milcore.dll直接的连接。
- System.Windows.UIElement:UIElement定义了WPF的核心系统,包括布局Layout、输入Input和事件Event、焦点等。
- System.Windows.FrameworkElement:作为WPF继承层次树的总结点,FrameworkElement实现了UIElement仅定义的成员。比如UIElement设置WPF布局系统的基础,而FrameworkElement则表壳几个关键的属性提供对布局系统的支持。比如HorizontalAlignment和Margin。FrameworkElement还引入了2个关键内容:数据绑定和样式。
- System.Windows.Shapes.Shape:基本形状类
- System.Windows.Controls.Control:控件
- System.Windows.Controls.ContentControl:非常重要的基类。ContentControl是其他内容控件的基类,
- System.Windows.Controls.ItemsControl:集合项控件的基类
- System.Windows.Controls.Panel:布局容器面板的基类,