----- XAML 中的绘画有两种方式:形状绘画和几何绘画。
一、形状绘画
---- 形状(Shape)是一个2D绘画类,位于System.Windows.Shape 空间内。最常用的绘画对象:(1)Line 直线 (2)Rectangle 矩形 (3)Ellipse 椭圆 (4)Polygon 多边形 (5)Path 路径 。图形对象共有属性:Stroke:说明如何绘制图形的轮廓,即所使用的画刷;StrokeThickness:说明图形轮廓的粗细度;Fill:说明如何绘制图形的内部。指定图形的坐标位置和顶点的数据属性,以与设备无关的像素来度量
1、直线
---- 直线是最简单的图形。使用X1、Y1两个属性可以设置它的起点坐标,X2、Y2两个属 性则用来设置其终点坐标。控制起点/终点坐标就可以实现平行、交错等效果。Stroke(笔触)属性的数据类型是Brush(画刷),凡是Brush的派生类均可用于给这个属性 赋值。因为WPF提供了多种渐变色画刷,所以画直线也可以画出渐变效果。同时,Line 的一些属性还帮助我们画出虚线以及控制线段终点的形状。
2、矩形
---- 矩形由笔触(Stroke,即边线)和填充(Fill)构成。Stroke属性的设置与Line一 样,Fill属性的数据类型是Brush。Brush是个抽象类,所以我们不可能拿一个Brush类的实 例为Fill属性赋值而只能用Brush派生类的实例进行赋值。WPF的绘图系统包含非常丰富 的Brush类型,常用的:
SolidColorBrush:实心画刷。在XAML中可以使用颜色名称字符串(如Red、Blue) 直接赋值。
LinearGradientBrush:线性渐变画刷。色彩沿设定的直线方向、按设定的变化点进 行渐变。
RadialGradientBrush:径向渐变画刷。色彩沿半径的方向、按设定的变化点进行渐 变,形成圆形填充。
ImageBrush:使用图片(Image)作为填充内容。
DrawingBrush:使用矢量图(Vector)和位图(Bitmap)作为填充内容。
VisualBrush:WPF中的每个控件都是由FrameworkElement类派生来的,而 FrameworkElement又是由Visual类的方法获得。获得这个可视化的形象后,我们可 以用这个形象进行填充,这就是VisualBrush。比如当我想把窗体上的某个控件拖拽 到另一个位置,当鼠标松开之前需要在鼠标指针下显示一个控件的“幻影”,这个“幻 影”就是用VisualBrush填充出来的一个矩形,并让矩形捕捉鼠标的位置、随鼠标移 动。
3、椭圆
---- 椭圆也是一种常见的几何图形,它的使用方法与矩形没有什么区别。下面的例子是绘 制一个球体,球体的轮廓是正圆(Circle),Width与Height相等的椭圆即是正圆;球体的 光影效果使用径向渐变实现。
4、路径(Path 类可以绘制曲线和复杂形状,Data属性使用mini-language,即路径标记语法)
---- 路径(Path)可以说是WPF绘图中最强大的工具,一来是因为它完全可以替代其他 几种图形,二来它可以将直线、圆弧、贝斯二曲线等基本元素结合进来,形成更复杂的 图形。路径最重要的一个属性是Data,Data的数据类型是Geometry(几何图形),我们 正是使用这个属性将一些基本的线段拼接起来、形成复杂的图形。
为Data属性赋值的语法有两种:一种是标签式的标准语法,另一种是专门用户绘制几 何图形的“路径标记语法”。
想要使用Path绘制图形,首先要知道几何图形数据是如何组合在Data属性中的。Path 的Data属性是Geometry类,但Geometry类是个抽象类,所以我们不可能在XAML中直接 使用标签。Geometry子类包括:
== LineGeometry:直线几何图形。
== RectangleGeometry:矩形几何图形
== EllipseGeometry:椭圆几何图形。
== PathGeometry:路径几何图形。
== StreamGeometry:PathGeometry的轻量级替代品,不支持Binding、动画等功能。
== CombinedGeometry:由多个基本几何图形联合在一起,形成的单一几何图形。
== GeometryGruop:由多个基本几何图形组成在一起,形成的几何图形组。
二、几何绘画
??图形绘图与几何绘图区别?
(1)图形对象可以独立存在的,可以独立绘制出具体需要的图形
(2)几何图形对象没有具体的形体,它需要依赖于某一对元素而存在
几何绘图包括5种对象:
LineGeometry:确定两点绘制一条直线。
RectangleGeometry:绘制矩形的几何图形。
EllipseGeometry:绘制椭圆形的几何图形
GeometryGroup:组合几何对象,将多个单一的几何对象组合成一个几何对象。
PathGeometry:路径几何对象