XAML高级绘图
绘图有两种方式:形状绘图和几何绘图
网址:https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/graphics-multimedia/?
view=netframeworkdesktop-4.8
形状绘图(笔触)
形状(shape)是一个2D绘图类,位于System Windows Shape 空间内
最常用的绘图对象:
Line :直线
Rectangle :矩形
Ellipse :椭圆
Polygon :多边形
Polyline :多线型
Path :路径
图像对象共有的属性:
Stroke :说明如何绘制图形的轮廓,即所使用的画刷
StrokeThickness :说明图形轮廓的粗细度
Fill :说明如何绘制图形的内部
指定图形的坐标位置和顶点的数据属性,以与设备无关的像素来度量
- 直线
<Line X1="100" Y1="200" X2="300" Y2="200"
Stroke="Red"
StrokeThickness="30"
StrokeStartLineCap="Flat"
StrokeEndLineCap="Triangle">
</Line>
直线是最简单的图形。使用X1、Y1两个属性可以设置它的起点坐标,X2、Y2两个属性则用来设置其终点坐标。控制起点/终点坐标就可以实现平行、交错等效果。Stroke(笔触)属性的数据类型是Brush(画刷),凡是Brush的派生类均可用于给这个属性赋值。因为WPF提供了多种渐变色画刷,所以画直线也可以画出渐变效果。同时,Line的一些属性还帮助我们画出虚线以及控制线段终点的形状
- 矩形
矩形由笔触(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填充出来的一个矩形,并让矩形捕捉鼠标的位置、随鼠标移动。
- 椭圆形
椭圆也是一种常见的几何图形,它的使用方法与矩形没有什么区别。
<Ellipse Fill="Yellow" Height="100" Width="200"
StrokeThickness="3" Stroke="Black">
</Ellipse>
- 多边形