一、WPF也有一些类型,和.Net类型对比如下:
.NET 常见类型有: Byte、Decimal、Double、Int16、Int32、Int64、Single
WPF 类型有: Color、Point、Point3D、Quaternion、Rect、Rotation3D、Size、Thickness、Vector、Vector3D
二、WPF中的图形和图像
分为三类:
(1)从无到有绘制一个图形的外形(也就是建立三角形顶点),也就是建立图形的纯几何元素的类。用于这个功能的类都继承于抽象基类Shape类。以后出现Shape子类的地方就相当于建立了一系列三角形顶点,也就是建立了一个形状(把Button也看成一个形状,就好像建立了一个Button一样)。
(2)对已存在的图形的外形进行变换(看成对三角形顶点的位置坐标进行修改)的类。用于这个的类就两个:Transform(抽象基类)和BitmapEffect类(抽象基类)
(3)描述图形内部的显示效果(看成像素着色器里的纹理等)或表面效果的类,可以把刷子就看成是一张图片纹理(我怀疑底层就是一个纹理)。就是一个Brush(抽象基类)。
(4)其实前面三个就完全描述了图形图像的建立和显示以及变换了。但WPF还提供了DrawingXXX类,这个类用来包装一个内存结构来作为Image或Brush(相当于Direct3D里面的渲染到纹理)。这样做的好处是,比如可以把一个内存结构描述的某个图形图像(在内存里形成的纹理图)看成一个画刷,这样画刷就更灵活了。说白了就把Brush看成一张纹理图,DrwingBrush是一张在内存里的纹理图,而不是存在硬盘上的。
下面对上面三四种进行详细的解释:
(1)从无到有绘制一个图形的外形(外形Shape)
WPF 提供了六种你可以用在你的UI 中的形状元素,有五个简单形状类和一个叫做Path 的能让你定义任意形状的形状类,形状是元素因此可以直接放入你的UI(就相当于一个Button一样)。
五中基本形状用法(下面左图是代码,右图是运行结果):