WPF 指定图形填充绘制图形

来源:互联网 发布:淘宝手机刷到单流程图 编辑:程序博客网 时间:2024/05/19 20:20

    最近在WPF开发工作中遇到一个问题,需要用斜线填充指定的图形。

    大家知道DrawGeometry可以实现绘制一个图形,它有三个参数。Brush brush, Pen pen, Geometry geometry;我们利用自己创建的DrawingBrush,作为第一个参数,对指定的geometry图形填充我们想要的图案。代码如下:

private DrawingBrush GenerateLeftObliqueLineBrush(){    GeometryGroup geoGroup = new GeometryGroup();    LineGeometry lineGeo = new LineGeometry(new Point(0, 0), new Point(20, 10));    geoGroup.Children.Add(lineGeo);    GeometryDrawing geoDrawing = new GeometryDrawing(null, _apertureBlockPen, geoGroup);    DrawingBrush leftObliqueLineBrush = new DrawingBrush(geoDrawing);    leftObliqueLineBrush.ViewportUnits = BrushMappingMode.Absolute;    leftObliqueLineBrush.Viewport = new Rect(0, 0, 20, 10);    leftObliqueLineBrush.TileMode = TileMode.Tile;    leftObliqueLineBrush.Stretch = Stretch.None;    return leftObliqueLineBrush;}private DrawingBrush GenerateRightObliqueLineBrush(){    GeometryGroup geoGroup = new GeometryGroup();    LineGeometry lineGeo = new LineGeometry(new Point(0, 10), new Point(20, 0));    geoGroup.Children.Add(lineGeo);    GeometryDrawing geoDrawing = new GeometryDrawing(null, _shieldBlockPen, geoGroup);    DrawingBrush rightObliqueLineBrush = new DrawingBrush(geoDrawing);    rightObliqueLineBrush.ViewportUnits = BrushMappingMode.Absolute;    rightObliqueLineBrush.Viewport = new Rect(0, 0, 20, 10);    rightObliqueLineBrush.TileMode = TileMode.Tile;    rightObliqueLineBrush.Stretch = Stretch.None;    return rightObliqueLineBrush;}

效果图如下:



0 0
原创粉丝点击