前面我们给大家介绍了LineGeometry,EllipseGeometry,CombinedGeometry等一些规则图形的使用方法,下面我们来看下如何使用PathGeometry来创建不规则图形

PathGeometry类:表示一个可能由弧、曲线、椭圆、直线和矩形组成的复杂形状。

下面先来看一段代码

 

<Window x:Class="WPF.SimpleGraph.PathFill.Window1"
        xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
        Title
="Window1" Height="300" Width="300">
    
<Canvas>
        
<Path Stroke="DarkGray" StrokeThickness="2">
            
<Path.Data>
                
<PathGeometry>
                    
<PathFigure StartPoint="80,40" IsClosed="False">
                        
<LineSegment Point="160,40"></LineSegment>
                        
<LineSegment Point="200,100"></LineSegment>
                        
<LineSegment Point="80,100"></LineSegment>
                        
<LineSegment Point="80,40"></LineSegment>
                    
</PathFigure>
                
</PathGeometry>
            
</Path.Data>
        
</Path>
    
</Canvas>
</Window>

执行结果是:

根据执行的结果,我们可以看到,程序画出了一个不等边的矩形,下面我们来分析一下,该图形是如何画出来了。

 

PathFigure类:表示几何图形的一个子部分、一系列单独连接的二维几何线段

首先我们看到在PathGeometry元素中我们添加了一个名为PathFigure的元素,它表示PathGeometry图形的一部分,一个PathGeometry图形可以包含一个或多个PathFigure。PathFigure有一个StartPoint属性,它表示该几何图形线段的起始位置

LineSegment表示在PathFigure中两个点之间的一条连线。

<LineSegment Point="160,40"></LineSegment>

该代码表示定义一条线,它的起始位置是PathFigure的StartPoint,结束位置是LineSegment的Point

 

第二条线

<LineSegment Point="160,40"></LineSegment>
<LineSegment Point="200,100"></LineSegment>

 它的起始位置是上一个LineSegment的Point,结束位置是它自己的Point,前后两条线条是互相连贯的。

本程序的划线步骤如下图:

 

<PathFigure StartPoint="80,40" IsClosed="False">

在PathFigure元素中有一个属性IsClosed,该属性的含义表示是否将最后一个端点与StartPoint连接,true=连接,false=不连接