WPF(Windows Presentation Foundation) Windows演示基础。
1.Windows 图形演化
众所周知,Windows利用User32和GDI/GDI+来穿件用户界面,但是,WPF的图形界面是以DirectX为基础的,DirectX可以理解高层次的元素,例如纹理和渐变,这些元素可以由显卡直接渲染,所以,DirectX效率很高,充分利用了显卡,大大减轻了CPU的负担,使CPU可以专心做其他事情。
2.WPF的新特征
(1)类似Web的布局模型:利用特定坐标进行精确的界面布局
(2)丰富的绘图模型:
(3)丰富的文本模型
(4)作为首要概念的动画
(5)支持音频和视频媒体
(6)样式和模版
(7)命令 通过代码抽象,可在特定的位置定义应用程序命令并将它连接到多个空间上。
(8)声明式用户界面 用户界面和代码完全分离,由图形设计人员可以使用专用工具编辑XAML文件,并最终改进应用程序的前端界面。
(9) 基于页面的应用程序
3.WPF 分辨率无关性
传统的Windows应用程序的用户界面是不可伸缩的。所有,如果使用更高的显示器分辨率,像素会排列得更紧密,应用程序窗口将变得更小并且更加难以阅读。
但在WPF中,WPF自己渲染所用的用户界面元素,从简单的 形状到通用的控件。所以,如果在计算机显示器上创建一个1英寸宽的按钮,在更高分辨率的显示器上它仍然能够保持1英寸的宽度-WPF只是使用更多的像素更详细的渲染这个按钮罢了。
4.WPF体系结构
在顶层,应用程序和一个完全由托管的C#代码编写的一组高层服务进行交互。至于将.NET对象转换为DirectX3D纹理和三角形的实际工作,是在后台由一个名为milcore.dll的低级的非托管组件完成的。milcore.dll是使用托管代码实现的。
PresentationFramework.dll包含了WPF顶层的类型,包含那些表示窗口、面板以及其他类型空间的类型。
PresentationCore.dll包含了基础类型,入UIElement类和Visual类,所有形状类和控件类都继承自这两个类。
WindowBase.dll包含了更多基本元素,包括DispatcherObject类和DependencyObject类。
milcore.dll是WPF渲染系统的核心,也是媒体继承层(Media integration Layer,MIL)的基础。其合成引起将可视化元素转换为Direct3D所期望的三角形和纹理。
WindowsCodecs.dll是一套提供图像支持的低级API
Direct3D是一套低级API,WPF应用程序中的所有图像都由它进行渲染。
User32用于决定哪些程序事件占有桌面的哪一部分
5.WPF核心类
1.System.Threading.DispatcherObject类
通过基础自DispatcherObject类,用户界面中的每个元素都可以检查代码是否在正确的线程上远行,并且可以访问调度程序为用户界面线程封送代码
2.System.Windows.DependencyObject类
依赖属性相关的类
3.System.Windows.Media.Visual类
WPF窗口中显示的每一个元素,本质上都是一个Visual对象
4.System.Windows.UIElement类
本类为WPF的本质特征提供支持,如布局、输入、焦点以及事件
5.System.Windows.FrameworkElement类
该类实现了一些全部由UIElement类定义的成员
6.System.WIndows.Shapes.Shape类
基本的形状类
7.System.Windows.Controls.Control类
控件是可以与用户进行交互的元素
8.System.Windows.Controls.ContentControl类
ContentControl类是所有具有单一内容的控件的基类
9.System.Windows.Controls.ItemsControl类
ItemsCOntrol类是所有显示选项集合的控件的基类
10.System.Windows.Controls.Panel类
容器类