结合多个椭圆

时间:2009-10-20 11:08:19

标签: wpf geometry shapes

我需要一种方法来组合多个EllipseGeometry来在它们之间建立联合,但CombineGeometry类只能组合2个Geometries。 理想的方法是使用一个类似于CombineGeometry的类,它接受的不仅仅是Geometry1和Geometry2形状 任何人都知道出现这种行为的对象吗?

1 个答案:

答案 0 :(得分:2)

EllipseGeometry也是一个Geometry,所以你可以这样组合:

  <CombinedGeometry GeometryCombineMode="Union">
       <CombinedGeometry.Geometry1>
            <EllipseGeometry RadiusX="70" RadiusY="30" Center="100,150"  />
       </CombinedGeometry.Geometry1>
       <CombinedGeometry.Geometry2>
            <EllipseGeometry RadiusX="70" RadiusY="30" Center="200,150" />
       </CombinedGeometry.Geometry2>
  </CombinedGeometry>

修改 要组合三个或更多EllipseGeometries,您可以使用此机制

<CombinedGeometry   GeometryCombineMode="Union">
    <CombinedGeometry.Geometry1>
        <CombinedGeometry GeometryCombineMode="Union">
              <CombinedGeometry.Geometry1>
                    <EllipseGeometry RadiusX="70" RadiusY="30" Center="100,150"  />
              </CombinedGeometry.Geometry1>
              <CombinedGeometry.Geometry2>
                    <EllipseGeometry RadiusX="70" RadiusY="30" Center="200,150" />
              </CombinedGeometry.Geometry2>
        </CombinedGeometry>
    </CombinedGeometry.Geometry1>
    <CombinedGeometry.Geometry2>
           <EllipseGeometry RadiusX="70" RadiusY="30" Center="100,150"  />
    </CombinedGeometry.Geometry2>
</CombinedGeometry>

您可以创建一个派生自Geometry的新类,并在其中包含Geometry []并使用上述机制实现方法。