在WPF中,提供了一个CombinedGeometry对象可以使两个几何图形合并产生效果
CombinedGeometry类:表示由两个 Geometry 对象组合定义的二维几何形状。
先来看一段代码:
<
Window
x:Class
="WPF.SimpleGraph.Combine"
xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
Title ="Combine" Height ="300" Width ="300" >
< Canvas >
< Path Stroke ="Red" StrokeThickness ="2" Fill ="Yellow" >
< Path.Data >
< CombinedGeometry GeometryCombineMode ="Exclude" >
< CombinedGeometry.Geometry1 >
< EllipseGeometry RadiusX ="50" RadiusY ="50" Center ="75,75" />
</ CombinedGeometry.Geometry1 >
< CombinedGeometry.Geometry2 >
< EllipseGeometry RadiusX ="50" RadiusY ="50" Center ="125,75" />
</ CombinedGeometry.Geometry2 >
</ CombinedGeometry >
</ Path.Data >
</ Path >
</ Canvas >
</ Window >
xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
Title ="Combine" Height ="300" Width ="300" >
< Canvas >
< Path Stroke ="Red" StrokeThickness ="2" Fill ="Yellow" >
< Path.Data >
< CombinedGeometry GeometryCombineMode ="Exclude" >
< CombinedGeometry.Geometry1 >
< EllipseGeometry RadiusX ="50" RadiusY ="50" Center ="75,75" />
</ CombinedGeometry.Geometry1 >
< CombinedGeometry.Geometry2 >
< EllipseGeometry RadiusX ="50" RadiusY ="50" Center ="125,75" />
</ CombinedGeometry.Geometry2 >
</ CombinedGeometry >
</ Path.Data >
</ Path >
</ Canvas >
</ Window >
执行结果:
其中Path元素的Fill属性表示使用yellow颜色来填充该图形
CombinedGeometry表示一个合并的图形,它有两个属性Geometry1和Geometry2,它们表示该图形由哪两个图形来合并,该例子中,我们使用两个圆形EllipseGeometry来合并
<
CombinedGeometry
GeometryCombineMode
="Exclude"
>
这句话中有一个GeometryCombineMode的属性,它表示合并的方式
下面我将不同的合并方式获得的效果给大家罗列一下:
<
CombinedGeometry
GeometryCombineMode
="Exclude"
>
<
CombinedGeometry
GeometryCombineMode
="Intersect"
>
<
CombinedGeometry
GeometryCombineMode
="Union"
>
<
CombinedGeometry
GeometryCombineMode
="Xor"
>