绘图基础概念

1.直线。

  直线是最简单的图形。使用X1Y1两个属性可以设置它的起点坐标,X2Y2两个属

性则用来设置其终点坐标。控制起点/终点坐标就可以实现平行、交错等效果。

Stroke(笔触)属性的数据类型是Brush(画刷),凡是Brush的派生类均可用于给这个属性

赋值。因为WPF提供了多种渐变色画刷,所以画直线也可以画出渐变效果。同时,Line

的一些属性还帮助我们画出虚线以及控制线段终点的形状。下面的例子综合了这些属

性:

Line.StrokeDashArray属性:StrokeDashArray是一个双精度字符串,指示用于勾勒

形状轮廓的虚线和间距的样式。

Line.StrokeDashCap属性:获取或设置一个 PenLineCap 枚举值,该值指定如何绘

制虚线的两端。

Line.StrokeStartLineCapLine.StrokeEndLineCap属性:用于设置起点和终点的样

式,也是一个 PenLineCap 枚举值,PenLineCap 枚举值,包括FlatSquare

RoundTriangle

2.矩形。

  矩形由笔触(Stroke,即边线)和填充(Fill构成。Stroke属性的设置与Line

,Fill属性的数据类型是BrushBrush是个抽象类,所以我们不可能拿一个Brush类的实

例为Fill属性赋值而只能用Brush派生类的实例进行赋值。WPF的绘图系统包含非常丰富

Brush类型,常用的有:

SolidColorBrush:实心画刷。在XAML中可以使用颜色名称字符串(如RedBlue

直接赋值。

LinearGradientBrush:线性渐变画刷。色彩沿设定的直线方向、按设定的变化点进

行渐变。

RadialGradientBrush:径向渐变画刷。色彩沿半径的方向、按设定的变化点进行渐

变,形成圆形填充。

ImageBrush使用图片(Image)作为填充内容。

DrawingBrush:使用矢量图(Vector)和位图(Bitmap作为填充内容。

VisualBrushWPF中的每个控件都是由FrameworkElement类派生来的,而

FrameworkElement又是由Visual类的方法获得。获得这个可视化的形象后,我们可

以用这个形象进行填充,这就是VisualBrush。比如当我想把窗体上的某个控件拖拽

到另一个位置,当鼠标松开之前需要在鼠标指针下显示一个控件的幻影,这个

就是用VisualBrush填充出来的一个矩形,并让矩形捕捉鼠标的位置、随鼠标移

动。

3.椭圆。

  Ellipse椭圆也是一种常见的几何图形,它的使用方法与矩形没有什么区别。下面的例

子是绘制一个球体,球体的轮廓是正圆(Circle,WidthHeight相等的椭圆即是正圆;

球体的光影效果使用径向渐变实现。

4.几何绘图。

  想要使用Path绘制图形,首先要知道几何图形数据是如何组合在Data属性中的。Path

Data属性是Geometry类,但Geometry类是个抽象类,所以我们不可能在XAML中直接

使用<Geometry>标签。

我们可以使用的是Geometry的子类。Geometry子类包括:

LineGeometry:直线几何图形。

RectangleGeometry:矩形几何图形。

EllipseGeometry:椭圆几何图形。

PathGeometry:路径几何图形。

StreamGeometryPathGeometry的轻量级替代品,不支持Binding、动画等功能。

CombinedGeometry:由多个基本几何图形联合在一起,形成的单一几何图形。

GeometryGruop:由多个基本几何图形组成在一起,形成的几何图形组。

5.绘图的各种线段。

  LineSegment 直线段。

ArcSegment 圆弧线段。

BezierSegment 三次贝塞尔曲线段(默认贝斯尔曲线是指三次曲线,所以

Cubic一词被省略)。

QuadraticBezierSegment 二次贝塞尔曲线段。

PolyLineSegment 多直线段。

PolyBezierSegment 多三次方贝塞尔曲线段。

PolyQuadraticBezierSegment 多二次贝塞尔线段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值