C#WPF XAML 绘图、画笔、特效
一、绘图
I.绘图有两种方式:形状绘图和几何绘图。
1.(1)、形状(Shape)是一个2D绘图类,位于System.Windows.Shape空间内。
2.包含最常用的绘图对象:Line(直线)、Rectangle(矩形)、Ellipse(椭圆)、Polygon(多边形)、Path(路径)。
(1)、图形对象共有属性:Stroke(如何使用绘制图形的轮廓,既所使用的画刷)、StrokeThickness(图形轮廓的粗细)、Fill(绘制图形的内部)。
(2)、指定图形的坐标位置和顶点的数据属性,以与设备无关的像素来度量。
(3)、直线是最简单的图形。使用X1、Y1两个属性可以设置它的起点坐标,X2、Y2两个属性则用来设置其终点坐标。控制起点/终点坐标就可以实现平行、交错等效果。
(4)、Stroke(笔触)属性的数据类型是Brush(画刷),凡是Brush的派生类均可用于给这个属性赋值。因为WPF提供了多种渐变色画刷,所以画直线也可以画出渐变效果。同时,Line 的一些属性还帮助我们画出虚线以及控制线段终点的形状。下面的例子综合了这些属性。
(5)、Y2控制向左倾斜,Y1控制向右倾斜,“StrokeDashArray”控制虚线密度,StrokeEndLineCap直线结束形状与StrokeStartLineCap直线开始形状:Flat(矩形)、Round(圆形)、Square(矩形)、Triangle(尖头形状)。
3.Rectangle(矩形)
(1)、矩形由笔触(Stroke,即边线)和填充(Fill)构成。Stroke属性的设置与Lin一
样,Fill属性的数据类型是Brush。Brush是个抽象类,所以我们不可能拿一个Brush类的实例为Fill属性赋值而只能用Brush派生类的实例进行赋值。WPF的绘图系统包含非常丰富的Brush类型。
(2)、SolidColorBrush:实心画刷。在XAML中可以使用颜色名称字符串(如Red、Blue)
直接赋值。
(3)、RadiusX="30"和RadiusY="100"是设置圆角效果。
(4)、LinearGradientBrush:线性渐变画刷。色彩沿设定的直线方向、按设定的变化点进
行渐变。
(5)、RadialGradientBrush:径向渐变画刷。色彩沿半径的方向、按设定的变化点进行渐
变,形成圆形填充。
(6)、 线性渐变:StartPoint=“0,0” EndPoint="1,1"起点为左上角终点为右下角,
(0,0 1,0)起点为左上角终点为左下角、(0,0 1,0,5)起点为左上角终点为右边一半。
(7)、ImageBrush:使用图片(Image)作为填充内容。
(8)、DrawingBrush:使用矢量图(Vector)和位图(Bitmap)作为填充内容。
Viewport:设置平铺的范围、TileMode:设置平铺的方式(Absolute绝对平铺、RelativeToBoundingBox相对平铺)。
(9)、ViewportUnits:设置平铺的相对/绝对坐标,即图片在哪平铺,Viewport=“0, 0, 0.5, 0.5” 表示要平铺图片在矩形框的位置,(0,0)代表起点坐标,(0.5,0.5)代表重点坐标。
(10)、VisualBrush:WPF中的每个控件都是由FrameworkElement类派生来的,而
(11)、FrameworkElement又是由Visual类的方法获得。获得这个可视化的形象后,我们可以用这个形象进行填充,这就是VisualBrush。比如当我想把窗体上的某个控件拖拽