WPF 图形对象和几何提对象
图形对象和几何提对象(初次写博,排版很乱)
绘图使用工具有图形形状,画刷,画笔。
画刷(Brush):
ImageBrush--使用位图,
DrawingBrush--使用可缩放的图形,
VisualBrush---可以获取任何可视的对象
我比较信任VisualBrush。因为我曾把图片做为Viewport2DVisual3D内的一个控件的背景时,用ImageBrush卡死,用DrawingBrush稍微有点卡。VisualBrush和DrawingBrush效果差不多,但visualBrush功能更强大,通用性强。
画笔(pen):是用来绘制形状的轮廓的,其实就是画刷的扩展。
Brush中的Stroke属性是用来勾绘图形的外部轮廓的,但一些人认为Brush中含有Stroke属性看起来很奇怪。pen的所有属性都会在Shape中出现,这样在使用Brush时不必再写一个pen来描述图形外轮廓。
Shape中Stroke属性与Pen对应的属性
shape属性 pen属性
Stroke Brus
StrokeThickness Thickness
StrokeLineJion LineJoin
StrokeMiterLimit MiterLimit
StrokeDashArray DashArray
StrokeDashCap DashCap
StrokeDashOffset DashOffser
StrokeStartLineCap StartLineCap
StrokeEndLineCap EndLineCap
wpf中有两套图形类,一套在System.windows.Shapes命名空间,一套在System.Windows.Media命名空间。
System.Windows.Media命名空间内的类绘图时只绘几何体,没有指定图形的颜色,线条的粗细,就像学几何时一样,做几何体时只会关心几何体每条线段的长度,起点,终点,坐标这些问题,线段的粗细颜色无关。所以这里的类后面大多都有-Geometry后缀。如RectangleGeometry、EllipseGeometry。
System.Windows.Shapes命名空间内的类提供的图形可以用来显示,可以看成美术类,可以设置图形可颜色,框的粗细。
<Ractangle Fill="Blue" Width="40" Height="80"/>
就是下面Path的简写方式:
<Path Fill="Blue">
<Path.Data>
<RectangleGeometry Rect="0,0,40,80">
</Path.Data>
</Path>
图形形状:
各种从Shape派生的类本质上都是底层几何对象的高度封装,Path在这点上就非常明确,它所构建的图形是由Data属性来定义的,而Data是一种Geometry类型。
几何类型:有CombinedGeometry (组合几何体)、GeometryGroup(几何体组)、 EllipseGeometry、LineGeometry、PathGeomety、RectangleGeometry、StreamGeometry(流几何)8种基本形态
CombinedGeometry和GeometryGroup感觉起来很像,但画的图上会发现GeometryGroup组合的图形只是将几个图形放在一起,各自的轮廓照样有,而CombinedGeometry组合的图形就成了一个标准的图形,一个完美的轮廓。
StreamGeometry比PathGeometry更有效果,可以定义所有图形,但创建后不能修改。